C - 我的循环一直添加到0
C++ - my loop keeps on adding up to 0
到目前为止,这是我的代码
#include <iostream>
using namespace std;
int main ()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
for(num2 = num1; num1 <= num2; num1 +=2) sum += num1;
num1 = num1 / 2 == 0? num1 : num1 + 1;
num2 = num2 / 2 == 0? num2 : num2 - 1;
cout << "Enter the First Number:" << endl;
cin >> num1;
cout << "Enter the Second Number:" << endl;
cin >> num2;
cout << "Total Sum: " << sum << endl;
} //end for
但总和不断增加0:/
这是问题。
创建一个程序,该程序显示用户输入的两个数字之间和包括两个数字的总和。换句话说,如果用户输入偶数号码,则该数字应包含在总和中。例如,如果用户输入整数2和7,则总和为12(2 4 6)。如果用户进入整数2和8,则总和为20(2 4 6 8)。如果用户输入的第一个整数大于第二个整数,则显示错误消息。
代码是顺序执行的,for循环初始化将使您失去循环的边界,而是考虑此代码。
#include <iostream>
using namespace std;
int main ()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
cout << "Enter the First Number:" << endl;
cin >> num1;
cout << "Enter the Second Number:" << endl;
cin >> num2;
if (num1 > num2) // swap the numbers and do not print error message
{
int temp = num1;
num1 = num2;
num2 = temp;
}
//make sure to start from even number
num1 = num1 % 2 ? num1+1 : num1;
for(; num1 <= num2; num1 +=2)
sum += num1;
cout << "Total Sum: " << sum << endl;
} //en
您需要在获取输入之后计算总和!
但是您的整个计算和循环使用是错误的。在这里是固定的:
#include <iostream>
using namespace std;
int main ()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
cout << "Enter the First Number:" << endl;
cin >> num1;
cout << "Enter the Second Number:" << endl;
cin >> num2;
if (num1 % 2 == 1) num1 += 1;
if (num2 % 2 == 1) num2 -= 1;
while (num1 <= num2) {
sum += num1;
num1 += 2;
}
cout << "Total Sum: " << sum << endl;
}
请注意以下内容:
%
返回模量-num1 % 2 ==1
意味着num1
是奇数。我拿出了您的三元?:
操作员不是因为它们不好,而是因为if
更容易阅读,在这种情况下,如果num1
均匀。您在循环开头设置
num2
。在这种情况下,while
循环更有意义,或者for
循环无初始化for (;num1<=num2; num1+=2) {
。
虽然您应该解决家庭作业(我认为),但这里有一些提示可以帮助您:
1)您的循环需要应循环的代码周围的卷发支架:
for(num2 = num1; num1 <= num2; num1 +=2)
{
sum += num1;
num1 = num1 / 2 == 0? num1 : num1 + 1;
num2 = num2 / 2 == 0? num2 : num2 - 1;
}
2)您的循环在您的cout
和cin
语句上方,因此在用户输入任何数字之前运行。您需要将循环移至(以下)用户已将数字提供给程序。
3)循环的逻辑可能不是您想要的。添加卷曲括号后,这就是它在做的事情(在"伪代码"中):
Let num2 equal num1 // Both are set to zero so this doesn't do anything
While num1 is less than or equal to num2:
{
Add the current value of num1 to sum.
if num1 /2 (ignoring remainder) is 0, then set num1 equal to itself. Otherwise, add 1 to it.
// num1 already equals itself, so this doesn't do anything when num1 / 2 is zero.
//
if num2 /2 (ignoring remainder) is 0, then set num1 equal to itself. Otherwise, subtract 1 from it.
Add 2 to num1.
}
除非作业另有说明,否则最好不要使用三元(?and :)语法,因为当您刚开始编程时,这很混乱(至少,我认为是这样)。
c 是一种具有挑战性的语言,但挂在那里!
1.)获取数字2.)确定最大和最小3.)总和在
之间#include <iostream>
using namespace std;
void main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
int temp = 0;
int i;
//Get your input values
cout << "Enter the First Number:" << endl;
cin >> num1;
cout << "Enter the Second Number:" << endl;
cin >> num2;
cout << endl;
//just to reorganize and make num1 the smallest of the two
if ( num2 << num1 )
{
temp = num1;
num1 = num2;
num2 = temp;
}
//loop through and add even values
for(i = num1; i < num2; i++)
{
if(i%2 == 0)
{
sum = sum + i;
}
}
cout << "Sum: " << sum << endl;
}
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- QT通过C++添加映射QML项目
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 只能向C++添加一定数量的字符
- Qt和C++:将QLineEdit添加到QTabWidget中
- 将QIcon添加到QTableView单元格
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- C - 我的循环一直添加到0
- 应用程序一直接收分段错误-除非我添加一个for循环
- 数组值一直将计算值添加到数组的前一个值