c语言 for循环求多个数平均数问题要求:设计一个程序,用户输入若干个数字,程序求出平均数.求助:我不知道哪里出了问题,反正循环不对,我设计的意图是:用户输入一个数字,然后程序询问是否

来源:学生作业学帮网 编辑:学帮网 时间:2024/04/29 06:43:26

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;

}






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前有个空格,这个空格也能吸收输入数字时的“回车符”,你试试在你的程序中也加个空格是否能解决~

c语言 for循环求多个数平均数问题要求:设计一个程序,用户输入若干个数字,程序求出平均数.求助:我不知道哪里出了问题,反正循环不对,我设计的意图是:用户输入一个数字,然后程序询问是否 求C语言编写一个求若干个数的平均数的问题!要求在屏幕上输入n个数,能求出这n个数的平均数! 如何用C语言求平均数?输入数据个数不定!我要求不需要输入数字个数啊... C语言 求如下的问题,用循环语句for或者while来解答 求矩阵三阶矩阵主副对角线和的C语言程序编辑,要求只要一个for循环 C语言 for循环结构用for循环结构求1!+2!+3!+……+10! C语言求平均数的问题这个错在哪里啊?求平均数 C语言 关于for循环?急 怎么用C语言的for循环,** * ** * * * ** * * * * * ** * * * ** * ** 用C语言求一个四位数的逆顺序要求变量越少越好,且不用循环语句,例如:for ,while等且不用数组,需要一个算法 C语言 FOR循环求100到300的素数的输出,并统计素数个数 每6个输出就换行 C语言循环语句中的条件问题.for(i=0;i 求一个C语言编程 输入N个数 求最大值 最小值 平均数 从键盘输入十个数求平均数并将小于平均数的数据输出的C语言的编程怎么做 c语言比较2个数的大小,求小数?1,比较2个数的大小,求小数.2,用for循环输出1到10.3,用三种结构输出1+2+3+4+5/.for,while,do while. C语言:输入一个含有5个数的数组,求平均数 用c语言求三个数的最大值和最小值和平均数 C语言编程 求三个数的平均数不能用指针数组求解