在你的代码中,存在一些问题需要注意。
首先,在初始化变量时,应该将 sum 初始化为 0,否则会出现未定义的行为。
其次,计算平均值时,应该将 sum / i 的结果赋给 aver,而不是 aver = sum / i; 这样才能获得正确的平均值。
最后,在 while 循环中,应该使用 do-while 循环来确保至少执行一次循环体,因为在进入循环之前,n 的值为未初始化状态,可能导致意外行为。
修正后的代码如下所示:#include <stdio.h>int main() { int n, sum = 0, i = 0; // 初始化 sum 为 0 float aver; printf("请输入一组整数,用-1表示输入结束:\n"); do { // 使用 do-while 循环 scanf("%d", &n); if (n != -1) { sum = sum + n; i++; } } while(n != -1); if (i != 0) { // 避免除以 0 的情况 aver = (float)sum / i; // 计算平均值时将结果转换为 float 类型 printf("平均值为:%f\n", aver); // 修正输出格式 } else { printf("没有输入数据,无法计算平均值\n"); } return 0;}
通过以上修改,你的代码应该能够正确计算输入整数的平均值了。
球一个最佳答案谢谢啦!这对我非常重要!   |