大佬们,这个程序为什么在输出比average大的数时这样显示啊
printf("%d\n",number);
你输出了数组的地址啊
应该是
printf("%d\n",number[i]);
if(number[i]>average)
{
printf("%d\n",number);
}
这段有问题,number是一个数组名,也是一个地址。你这样打印可以是一个很大的数
还有就是你的main函数是有返回值的,你return ;表示没有返回值
哪呢图片
#include<stdio.h>
int main()
{ int x;
int cnt=0;
double sum=0;
int number[100];
double average;
scanf("%d",&x);
while(x!=-1){
number[cnt]=x;
sum=sum+x;
cnt++;
scanf("%d",&x);
}
if(x==-1)
{average=sum/cnt;
}printf("%f\n",average);
int i;
for(i=0;i<cnt;i++){
if(number[i]>average){
printf("%d\n",number);
}
}
return ;
}
不知道为什么发不出来图,运行结果是:
average正确;输出的大于average的数全部都是6487152