|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- int main()
- {
- int n, sum = 0, i = 0;
- float aver = 0.0;
- printf("请输入一组整数,用-1表示输入结束:\n");
- while(n != -1)
- {
- scanf("%d", &n);
- sum = sum + n;
- i++;
- }
- aver = (float)sum / i;
- printf("平均值为:%.2f\n", aver);
- return 0;
- }
复制代码
题目是:输入一组整数,当输入-1时表输入结束,然后计算这组整数平均值(用累加求平均值)
我哪里有问题,运行结果的平均值不对
问题出在while循环中的判断条件。在进入循环之前,你没有给变量n赋初始值,所以它的值是不确定的。在循环条件中判断n是否等于-1,但由于n的初始值不确定,所以循环可能不会执行。
为了解决这个问题,你可以将变量n的初始化放在while循环之前,例如将int n的声明改为int n = 0。这样,在循环开始时,n的值就是0,而不是不确定的。
另外,你需要在循环内部的scanf语句之后添加一个条件判断,以防止将-1添加到sum中。可以使用if语句来判断输入的值是否为-1,如果是-1,则跳出循环。
修改后的代码如下:
- #include <stdio.h>
- int main()
- {
- int n = 0, sum = 0, i = 0;
- float aver = 0.0;
- printf("请输入一组整数,用-1表示输入结束:\n");
- while (n != -1)
- {
- scanf("%d", &n);
- if (n != -1)
- {
- sum = sum + n;
- i++;
- }
- }
- aver = (float)sum / i;
- printf("平均值为:%.2f\n", aver);
- return 0;
- }
复制代码
这样修改后,你应该能够得到正确的平均值。
|
|