这是使用scanf()函数输入10个实数,输出它们的平均值及大于平均值的那些数据的一个程序,能运行,结果却不对,不知道哪出错了,希望兄弟们来帮帮忙~~谢
#include<stdio.h>
void main()
{
int a[10];
int i,sum,aver;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
sum=sum+a[i];
aver=sum/10;
printf("aver=%d\n",aver);
for(i=0;i<10;i++)
if (a[i]>aver)
printf("%d\n",a[i]);
getch();
}
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int a[10];
int i,sum = 0,aver;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
// printf("\n");
sum=sum+a[i];
}
aver=sum/10;
printf("aver=%d\n",aver);
for(i=0;i<10;i++)
if (a[i]>aver)
printf("%d\n",a[i]);
getch();
}
注意书写规范的代码
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int a[10];
int i,sum=0;
float aver;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
{ scanf("%d",&a[i]);
sum=sum+a[i];}
aver=sum/10.0;
printf("aver=%f\n",aver);
for(i=0;i<10;i++)
{if (a[i]>aver)
printf("%d\n",a[i]);}
}
注意for 的用法;aver的定义
----------------解决方案--------------------------------------------------------
你掉了个语句, sum=sum+a[i];前再加个 for(i=0;i<10;i++)就可以拉
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
float a[10];
int i;float sum=0.00;float aver;
printf("input 10 numbers:\n");
for(i=0;i<10;i++)
{
scanf("%f",&a[i]);
sum=sum+a[i];
}
aver=sum/10;
printf("aver=%f\n",aver);
for(i=0;i<10;i++)
{
if (a[i]>aver)
printf("%5f\n",a[i]);
}
}
这样当平均数是小数的时候也可以输出。
----------------解决方案--------------------------------------------------------
下面是我的代码:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i;
float sum,average,fnumber[10];
printf("input 10 float number:");
for(i=0,sum=0.0;i<10;i++)
{
scanf("%f",&fnumber[i]);
sum+=fnumber[i];
}
/*for(i=0;i<10;i++)
{
sum+=fnumber[i];
}*/
average=sum/10;
printf("%8.4f",average);
printf("\n\n");
for(i=0;i<10;i++)
{
if(fnumber[i]>average)
{
printf("%8.4f ",fnumber[i]);
}
}
system("pause");
return 0;
}
----------------解决方案--------------------------------------------------------
注意括号
----------------解决方案--------------------------------------------------------
请大家说到关键点上
这道题错的根本原因是sum=sum+a[i];不在循环体内
所以它并没有达到循环求和目的
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{float a[10],sum=0,average;
int i;
printf("please input 10 numbers:");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
for(i=0;i<10;i++)
sum+=a[i];
average=sum/10;
printf("average=%4.1f\n",average);
for(i=0;i<10;i++)
if(a[i]>average)printf("%4.1f ",a[i]);
getch();
}
----------------解决方案--------------------------------------------------------
呵呵 `!
----------------解决方案--------------------------------------------------------