简单的循环不工作

时间:2013-10-31 14:06:31

标签: c++ for-loop

过去几天我一直在使用“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我的英语。

2 个答案:

答案 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;
  ^