
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=38
----------------------------------
修改建议:
1、main函数里第二行int i=1;改为int i=0;
2、在printf("输入n结束"); 语句前加一条语句getchar(); 用来吸收给c赋值时你输入的“回车符”,如果不加getchar();那么每次循环a的值都是n,只有在输入数字时才能输入n,但是会造成i的值多加了1次,导致结果不正确。
----------------------------------
至于你的程序和例题程序区别在于:
%c前有个空格,这个空格也能吸收输入数字时的“回车符”,你试试在你的程序中也加个空格是否能解决~
#include <stdioh>
int main()
{
int ave= 0,p = NULL;
int arr[8] = {0};
printf("输入8个整数:\n");
for(p = arr;p < arr + 8;p++)
scanf("%d",p);
for(p = arr;p <arr + 7;p++){
printf("8个数是:", p);
if(p < (p+1))
ave=(p+1);
}
printf("\nave=%d\n",ave);
return 0;
}
以上就是关于c语言 for循环求多个数平均数问题全部的内容,包括:c语言 for循环求多个数平均数问题、编写程序实现,从键盘输入8个数值存放到数组中,要求循环输出数组的值和平均值、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)