过去几天我一直在使用“C ++ Primer Plus”这本书教自己C ++。 我一直在取得不错的进步。但其中一位执行官给我带来了一些麻烦。
这是我应该做的:
编写一个程序,请求用户输入两个整数。程序应该 然后计算并报告两者之间所有整数的总和 整数。此时,假设首先输入较小的整数。例如,如果 用户输入2和9,程序应报告所有整数的总和 从2到9是44。
这是我的代码:
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
int c;
cout << "Please enter the first number: ";
cin >> a;
cin.get();
cout << "Please enter the second number: ";
cin >> b;
cin.get();
for (int i = a; i <= b; i++)
{
c += i;
}
cout << c;
cin.get();
return 0;
}
每当我运行它,结果将是2293673。 有趣的是,我已经完成了谷歌搜索,我发现的工作程序基本上与我的相同,除了那些工作和我的工作没有。
所以我的问题:我到底做错了什么? 提前谢谢!
P.S。:Srry我的英语。
答案 0 :(得分:15)
您尚未初始化变量c。它应该初始化为零。
int c = 0;
答案 1 :(得分:2)
c
未在此处初始化:
int c;
因此它有一个不确定值,在您的情况下,因为您希望c
是系列的总和,将其初始化为0
是有意义的:
int c = 0 ;
在您的编译器上启用警告应该已经抓住了这一点,使用-Wall
clang
时会发出以下警告:
warning: variable 'c' is uninitialized when used here [-Wuninitialized]
c+=i;
^