你把数组定义成全局变量试试
by 老子是北瓜 @ 2020-03-30 11:49:03
@[ChengxingChang](/user/201468) 因为m定义的时候你没输入m,系统就自动给了个随机数,懂?
by GoldenFishX @ 2020-03-30 11:50:46
```
#include<stdio.h>
double av(int *,int);
int main()
{
double max=0;
int n,m;
scanf("%d%d",&n,&m);
int a[m];//这样
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
scanf("%d",&a[j]);
if(av(a,m)>max)
max=av(a,m);
}
printf("%.2lf",max);
return 0;
}
double av(int *a,int m)//求平均数的函数
{
int max=a[0];
int min=a[0];
int s=0;
for(int i=0;i<m;i++)
{
s+=a[i];
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
return (double)(s-max-min)/(double)(m-2);
}
```
by GoldenFishX @ 2020-03-30 11:51:16
你的n,m没有读入就开数组
by ☆木辛土申☆ @ 2020-03-30 11:51:35
@[ChengxingChang](/user/201468)
```
double max=0;
int n,m;
int a[m];
scanf("%d%d",&n,&m);
```
应当先读入n,m
by ☆木辛土申☆ @ 2020-03-30 11:52:28
众所周知,代码不能过,应该第一时间说是评测机的问题
by He_Ren @ 2020-03-30 11:53:14
re是因为数组越界,就是假如你数组只有10那么大,你访问了a[100];
by GoldenFishX @ 2020-03-30 11:54:11
评测机无辜背锅
by GoldenFishX @ 2020-03-30 11:54:53
评测机无辜背锅
by HearTheWindSing @ 2020-03-30 11:55:30
建议-Wall -Wextra
by ☆木辛土申☆ @ 2020-03-30 11:55:52