我的C ++书中出现了问题。这不是必须的,但我想让它发挥作用:
数字总和
编写一个程序,询问用户是否为正整数值,并使用循环来验证输入。*程序应该使用第二个循环来计算从1到输入数字的所有整数之和。例如,如果用户输入50,则循环将找到1,2,3,4 ......之和。
*我不是要求第一个循环,只是第二个循环。但如果您想编码,请继续。
编写一个减少数字直到达到1的程序非常简单:
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Enter a number: ";
cin >> number;
while(number >= 1)
{
cout << number << " ";
number--;
}
system("pause"); //I usually go with cin.get() but my current
//compiler doesn't handle it
return 0;
}
但是如果要在数字中添加“数字-1”,则数字会变大,现在数字-1将从此增加。例如,7 + 6 = 13,13 + 12 = 25,25 + 24 = 49,等等。这是我试图适应工作的程序:
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Enter a number: ";
cin >> number;
for(count = 1; count <= number; count++)
{
number += number - 1;
}
cout << "The sum is" << number << endl;
system("pause"); //
return 0;
}
遗憾的是,这是一个无限循环。
有关如何调整此程序以满足问题的任何想法?或链接到之前已经完成的源代码等。
编辑:
所以这可能完全是另一个问题,但我的代码没有编译:
#include <iostream>
using namespace std;
int main()
{
int number, sum = 0;
cout << "Enter a number: ";
cin >> number;
for(count = 1; count <= number; count++)
{
number--;
sum += number;
}
cout << "The sum is" << sum << endl;
system("pause"); //
return 0;
}
编辑2:我刚刚摆脱了for循环并将其更改为“while(number&gt; = 1)”
答案 0 :(得分:2)
这样的东西?
int sum = number;
while (number-- > 0) {
sum += number;
}
答案 1 :(得分:0)
我找到一个for循环整理器,所以我将发布一个变化的例子。
int n = Max Number
int sum = 0;
for(int i = 1; i <= n; i++) {
sum += i;
}
对于你的编译问题,除非我读错了,你不应该减少数字;它定义了最大数量。每个循环都是递增计数,递减数字,然后比较它们。我无法想象会给你带来什么有意义的东西。删除number--;
,它应该有效。