当前位置: 代码迷 >> C语言 >> [求助]关于scanf输出数组
  详细解决方案

[求助]关于scanf输出数组

热度:531   发布时间:2007-05-29 08:56:26.0
[求助]关于scanf输出数组

这是使用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();

}

搜索更多相关的解决方案: scanf  输出  

----------------解决方案--------------------------------------------------------

#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();
}
----------------解决方案--------------------------------------------------------

呵呵 `!


----------------解决方案--------------------------------------------------------
  相关解决方案