C++ 程序从键盘添加正奇数,忽略偶数并在输入负数或零时停止 - 奇数求和
C++ Program that adds positive odd numbers from keyboard, ignores even and stops when negative number or zero are entered - sum odd numbers
所以从技术上讲,我已经完成了作业所说的,因为这是可行的:
#include <iostream>
using namespace std;
int main()
{
int number = 0;
int sum = 0;
cout << "Please enter an odd positive integer: " << endl;
cout << "This program will end if number is <= 0 or decimal" << endl;
cin >> number;
while (number > 0)
{
if (number % 2 != 0)
sum = sum + number;
else
cout << "That number was even - please enter odd number \n";
cin >> number;
}
cout << "Sum of odd numbers = " << sum << endl;
return 0;
}
但是 - 我突然意识到当有人输入双精度或输入字符时程序会退出,而不仅仅是警告这会发生 - 我很乐意将其写入。我已经尝试使用 else if 语句和我没有得到想要的结果。我并不是要有人为我解决这个问题 本身 但如果我能被送到正确的方向。我们目前正在研究 while 和 for 循环和增量(这似乎根本不适用于此处)
首先,您必须将 number
变量更改为 string
以接收“任何内容”,处理垃圾输入,最后将其转换为 int
如果它符合您的要求。这通常不太难,但有时会变得棘手。 Google 通常是您的朋友。自从我使用 C++ 以来已经有一段时间了,所以我也必须查阅它才能使事情正确。
当你说“double”时,这个数字是 2 位数字还是太长而不能成为 int
?一点点模棱两可让我失望。如果它只是一个太大的数字作为实际的 double
数据类型,string
应该有助于解决这个问题,因为 2 位数的问题。
要使增量有用,您可以使用 sum += number;
,具体取决于您的 C++ 版本。旧版本不允许这样做,但新版本可以。令我惊讶的是,此时 gcc 或其他编译器还不够新,无法使用。
旁注
谢谢你不是“典型的作业题”。很好,您只是征求意见,而不是让别人为您编写代码。
虽然我找到了你,但你应该考虑阅读 How To Ask A Question and Tour pages. The Tour gets you another badge, and the other is just good advice to keep people from downvoting or closing your future questions. You already have a good idea on how to ask a homework question,但阅读该页面也是一个好主意。
不过我跑题了
祝你好运,希望我让你走上了正确的道路。
所以从技术上讲,我已经完成了作业所说的,因为这是可行的:
#include <iostream>
using namespace std;
int main()
{
int number = 0;
int sum = 0;
cout << "Please enter an odd positive integer: " << endl;
cout << "This program will end if number is <= 0 or decimal" << endl;
cin >> number;
while (number > 0)
{
if (number % 2 != 0)
sum = sum + number;
else
cout << "That number was even - please enter odd number \n";
cin >> number;
}
cout << "Sum of odd numbers = " << sum << endl;
return 0;
}
但是 - 我突然意识到当有人输入双精度或输入字符时程序会退出,而不仅仅是警告这会发生 - 我很乐意将其写入。我已经尝试使用 else if 语句和我没有得到想要的结果。我并不是要有人为我解决这个问题 本身 但如果我能被送到正确的方向。我们目前正在研究 while 和 for 循环和增量(这似乎根本不适用于此处)
首先,您必须将 number
变量更改为 string
以接收“任何内容”,处理垃圾输入,最后将其转换为 int
如果它符合您的要求。这通常不太难,但有时会变得棘手。 Google 通常是您的朋友。自从我使用 C++ 以来已经有一段时间了,所以我也必须查阅它才能使事情正确。
当你说“double”时,这个数字是 2 位数字还是太长而不能成为 int
?一点点模棱两可让我失望。如果它只是一个太大的数字作为实际的 double
数据类型,string
应该有助于解决这个问题,因为 2 位数的问题。
要使增量有用,您可以使用 sum += number;
,具体取决于您的 C++ 版本。旧版本不允许这样做,但新版本可以。令我惊讶的是,此时 gcc 或其他编译器还不够新,无法使用。
旁注
谢谢你不是“典型的作业题”。很好,您只是征求意见,而不是让别人为您编写代码。
虽然我找到了你,但你应该考虑阅读 How To Ask A Question and Tour pages. The Tour gets you another badge, and the other is just good advice to keep people from downvoting or closing your future questions. You already have a good idea on how to ask a homework question,但阅读该页面也是一个好主意。
不过我跑题了
祝你好运,希望我让你走上了正确的道路。