C ++中的基本计算器错误

时间:2016-01-01 05:59:55

标签: c++

我今天刚刚开始编码,我决定在没有教程帮助的情况下编写一个随机计算器。最终的结果是大数字:

input number
5
input number 
5
answer
6887592

https://gyazo.com/3b3232644f36024d5776f02dd377ae61

这是我的代码,

#include <iostream>
using namespace std;
int main()
{
    int a;
    int b;
    int cents;
    cents = a + b;
    cout<<"Input number\n";
    cin >> a;
    cout<<"Input number\n";
    cin >> b;
    cout << "answer"<< endl;
    cout << cents;
    return 0;

http://pastebin.com/QBrEdhJF

3 个答案:

答案 0 :(得分:5)

在我熟悉的所有编程语言中,事情按顺序顺序发生。这意味着每个语句都按顺序完成其工作。

由于您在输入值之前尝试添加,因此总和是ab上面的语句中的任何内容。您尚未为这些变量分配任何内容,稍后会出现这些变量。如果不以效率的名义为它们分配任何内容,C ++将不会初始化变量 - 它们将包含发生在这些内存位置的任何随机垃圾。所以你得到的总和是无稽之谈。技术术语是未定义的行为

答案 1 :(得分:1)

您正在添加值a&amp; b在接受输入之前。因此美分包含垃圾值。

尝试这种方式:

#include <iostream>

using namespace std;

int main()
{
    int a;
    int b;
    int cents;
    cout<<"Input number\n";
    cin >> a;
    cout<<"Input number\n";
    cin >> b;
    cents = a + b;                    // Moved down here
    cout << "answer"<< endl;
    cout << cents;
    return 0;
}

答案 2 :(得分:0)

int a = 0, b = 0, cents = 0;
cout<<"Input number\n";
cin >> a;
cout<<"Input number\n";
cin >> b;
cout << "answer"<< endl;
cents = a + b;
cout << cents;
return 0;