C++中for循环仅执行一次问题求助:读取10整数求奇偶和
解决for循环仅读取一次整数的问题
嘿,我瞅出来你代码里的问题啦,主要是输入读取的位置不对,还有循环次数的小瑕疵,咱们一步步来修复:
你的代码核心问题
- 输入语句在循环外:你把
cin >> integer;写在了for循环外面,这就导致程序只会在循环启动前读一次整数,之后循环里一直用这个旧值,自然没法获取10个不同的输入。 - 循环次数多了一次:你的循环条件是
intcount <=10,而intcount初始是0,这样会循环11次(从0到10),但你需要的是读取10个整数,得调整一下条件。
修正后的完整代码
#include <iostream> using namespace std; int main() { int integer; int even = 0; int odd = 0; int intcount = 0; cout << "请输入10个整数:" << endl; // 循环读取10个整数 for(; intcount < 10; intcount++) { cin >> integer; // 把输入移到循环内,每次迭代都读新数 if((integer % 2) == 0) { even += integer; // 累加偶数 } else { odd += integer; // 累加奇数 } } // 输出计算结果 cout << "偶数的总和:" << even << endl; cout << "奇数的总和:" << odd << endl; return 0; }
关键修改说明
- 移动输入语句到循环内部:这样每一次循环都会读取一个全新的整数,保证能收集到10个不同的输入值。
- 调整循环条件:用
intcount <10代替<=10,这样从0到9刚好执行10次循环,完美对应读取10个整数的需求。 - 补全累加逻辑:你原来的代码里
if分支后面是...,这里帮你补全了偶数和奇数的累加操作,让程序能正常计算总和。
这样修改后,程序就能正常工作啦,试试输入10个整数,就能得到正确的奇偶总和啦~
内容的提问来源于stack exchange,提问作者Sam S.
相关产品推荐
相关产品推荐

