c语言 for循环求多个数平均数问题要求:设计一个程序,用户输入若干个数字,程序求出平均数.求助:我不知道哪里出了问题,反正循环不对,我设计的意图是:用户输入一个数字,然后程序询问是否
c语言 for循环求多个数平均数问题要求:设计一个程序,用户输入若干个数字,程序求出平均数.求助:我不知道哪里出了问题,反正循环不对,我设计的意图是:用户输入一个数字,然后程序询问是否
c语言 for循环求多个数平均数问题
要求:设计一个程序,用户输入若干个数字,程序求出平均数.
求助:我不知道哪里出了问题,反正循环不对,我设计的意图是:用户输入一个数字,然后程序询问是否继续(输入n结束,输入其他继续录入数字),出来的结果却如图示,计算不准,同时提示汉字也有问题.很郁闷.求解.
#include <stdio.h>
int main()
{
char a = 0 ;
int i=1;
double c=0,b=0;
for( ;;)
{
printf("\n请输入数字\n");
scanf("%lf",&c);
b +=c;
++i;
printf("输入n结束");
scanf("%c",&a);
if (a == 'n')
break;
}
printf("平均值是 %lf ",b/i);
return 0;
}
c语言 for循环求多个数平均数问题要求:设计一个程序,用户输入若干个数字,程序求出平均数.求助:我不知道哪里出了问题,反正循环不对,我设计的意图是:用户输入一个数字,然后程序询问是否
1、你定义的变量i初始值是1:int i=1; 在for循环里边输入第一个数字时i自加变成了2,到最后会导致数字的个数多了1个,造成结果不正确.
2、当你最后输入n时,相当于for循环执行了4次,而实际上只有3个数,i的值已经变成了5,而且c的值还是3,又被加到了b中,最后的结果(8+5+3+3)/5=3.8
----------------------------------
修改建议:
1、main函数里第二行int i=1;改为int i=0;
2、在printf("输入n结束"); 语句前加一条语句getchar(); 用来吸收给c赋值时你输入的“回车符”,如果不加getchar();那么每次循环a的值都是n,只有在输入数字时才能输入n,但是会造成i的值多加了1次,导致结果不正确.
----------------------------------
至于你的程序和例题程序区别在于:
%c前有个空格,这个空格也能吸收输入数字时的“回车符”,你试试在你的程序中也加个空格是否能解决~