【发布时间】:2018-02-22 16:41:06
【问题描述】:
程序要求用户输入数字,直到数字总数大于 30。此外,用户必须计算有多少是偶数,有多少是奇数。 我可以解决问题的第一部分,但计数部分有问题。
即
总数为 0
请输入整数:20
总数为 20
你有 1 个偶数和 0 个奇数。
#include <iostream>
#include <string>
using namespace std;
int main (){
int integer;
int total = 20;
int even_count = 0;
int odd_count = 0;
cout << "Total is 0" << endl;
cout << "Please enter an integer: ";
cin >> integer;
cout << integer << endl;
while ( total <= 30){
cout << "Total is " << total << endl;
cout << "Please enter an integer: ";
cin >> integer;
cout << integer << endl;
total = integer + total;
}
if (integer % 2 == 0) {
even_count = even_count + 1;
}
if (integer % 2 != 0){
odd_count = odd_count + 1;
}
cout << "You had " << even_count << " even numbers and ";
cout << odd_count << " odd numbers.";
cout << endl;
return 0;
}
【问题讨论】:
-
有什么问题吗?你的示例输出很好,不是吗?
-
您每次都在测试整数,而不是在所有输入都消失之后,对吧?
-
你将
total初始化为20,然后打印“Total is 0”,也许这就是你需要解决的所有问题? -
再次阅读您的代码并密切注意循环内部的部分和外部的部分。
-
另外,尝试输入一个不是
20的数字,例如5
标签: c++ if-statement while-loop