c语言6.输入十个整数,计算出平均值(aver),找出最大者(max)和最小者(min)并将三者输出。

#include"stdio.h"
main()
{
int a[10],sum,i;float ave;
int max=a[0],min=a[0];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
ave=sum/10;
for(i=1;i<10;i++)
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
printf("max=%d min=%d ave=%f",max,min,ave);
}
当我依次输入1 2 3 4 5 6 7 8 9 10 结果离奇的大

思路:定义整型数组a,max,min和aver,for循环键盘输入,把输入数和max、min比较更新max和,min,并aver进行累加,最后输出max、min和aver除以10即可。

参考代码:

#include<stdio.h>
int main()
{
 int a[10],max,min,i;
 float aver=0.0;
 scanf("%d",&a[0]);
 max=min=a[0];
 aver+=a[0];
 for(i=1;i<10;i++){
  scanf("%d",&a[i]);
  if(a[i]>max) max=a[i];
  if(a[i]<min) min=a[i];
  aver+=a[i];
 }  
 printf("max=%d,min=%d,aver=%.2f\n",max,min,aver/10);
 return(0);
}
/*
运行结果:
0 1 2 3 4 5 6 7 8 9
max=9,min=0,aver=4.50 
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-26
#include"stdio.h"
main(){ int a[10],sum=0,i;
float ave;
for(i=0;i<10;i++) { scanf("%d",&a[i]); sum=sum+a[i]; }
ave=sum/10;
int max=a[0],min=a[0];
for(i=1;i<10;i++)
{if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
}
printf("max=%d min=%d ave=%f",max,min,ave);}
错误有两处:
首先你没定义sum的初始值;
其次int max=a[0],min=a[0];应该在输入数值之后定义,不然max,min=a[0];会被默认一个很小的值
第2个回答  2012-11-26
#include"stdio.h"
main()
{
int a[10],sum=0,i;float ave; //这里的sum要初始化,因为你后来要用到它;
int max=a[0],min=a[0];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
ave=sum/10;
for(i=1;i<10;i++)
{ //这里要加大括号,这样才能保证for循环包括两个if语句;
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
printf("max=%d min=%d ave=%f",max,min,ave);
}
你先这样试试,看是不是还有这种问题
第3个回答  2012-11-26
#include"stdio.h"
main()
{
int a[10],sum=0,i,max=a[0],min=a[0];
float ave;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
max=a[0],min=a[0];
ave=sum/10;
for(i=1;i<10;i++)
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
printf("max=%d min=%d ave=%f",max,min,ave);
}本回答被提问者和网友采纳
第4个回答  2012-11-26
1、sum要初始化赋值为0
2、max=a[0],min=a[0];这两句要放在第一个for循环之后。追问

放在第一个for之后显示 max min未定义

追答

我是说赋值要放在第一个for循环之后,之前当然还是要定义变量了。

相似回答