C++不定量输入统计最大值平均值程序无输出问题求助
问题分析与修复说明
核心问题点
- 输出顺序错误
题目的输出要求为先打印最大值、再打印平均值,你的代码中cout << avg << " " << max;将两个值的输出顺序颠倒,直接导致输出结果不符合示例要求。比如示例输入的情况下你的代码会输出10 20,和要求的20 10顺序相反。 - 无输出的原因
你的while循环逻辑本身没有语法错误,程序无法输出的核心原因是没有触发循环终止条件:只有当程序读取到负整数时才会退出循环执行后续输出逻辑,如果你输入完所有非负整数后没有输入约定好的终止负整数,程序会一直停在输入等待状态,看起来就是没有任何输出。
修复后的代码
#include <iostream> using namespace std; int main() { int count = 0; int max = 0; int total = 0; int num; int avg; cin >> num; while (num >= 0) { count++; total += num; if (num > max){ max = num; } cin >> num; } avg = total / count; // 调整输出顺序,先输出最大值,再输出平均值 cout << max << " " << avg; return 0; }
验证说明
用题目给出的示例输入15 20 0 5 -1测试修复后的代码,会输出20 10,完全符合要求。
内容的提问来源于stack exchange,提问作者user16980790
相关产品推荐
相关产品推荐

