请问大家一道C语言题目,谢谢大家,如果有道理的话我会加分的,题目如下

来源:百度知道 编辑:UC知道 时间:2024/06/04 23:31:16
main()
{
int i,j;
double t,sum,ave;
sum=0;
for(i=1;i<=6;i++)
{
for(j=1;j<=5;j++)
{scanf("%lf",&t);
sum+=t;
}
ave=sum/5;
printf("%lf\n",ave);
}
}
此题运行时系统不报错误,本应该一次输入5个数得出一个平均值,实际也的确如此,但是每次只有第一组的平均值是正确的,剩下的都错误的太不合理了,请大家帮忙我该怎样修改?谢谢大家

应该在第一次外循环开始之时将sum置0,如下:

main()
{
int i,j;
double t,sum,ave;

for(i=1;i<=6;i++)
{sum=0;/*******注意这里************/
for(j=1;j<=5;j++)
{scanf("%lf",&t);
sum+=t;
}
ave=sum/5;
printf("%lf\n",ave);
}
}

楼主错误的地方:
首先你定义的sum是表示要输入的5个数的总和,第一次是正确的,但是在你第二次输进去的时候,你的sum还是保存了你第一次输入5个数的总和,所以你第二次得到的数为前十个数的总和除以5,第三次得到的数为前15个数的总和除以5,依次类推‘’
解决方法:每次得到总和都对sum进行清零,那样sum存的就是新输入的5个数的总和了
也就是
sum=0;
for(i=1;i<=6;i++)
{
for(j=1;j<=5;j++)
{scanf("%lf",&t);
sum+=t;
}
改为:
for(i=1;i<=6;i++)
{ sum=0;
for(j=1;j<=5;j++)
{scanf("%lf",&t);
sum+=t;
}
还有什么不懂的继续交流~~~

void main()
{
int i,j;
double t,sum,ave;
sum=0;
for(i=1;i<=6;i++)
{
for(j=1;j<=5;j++)
{
scanf("%lf",&t);
sum+=t;
}
ave=