2017-02-03 32 views
-4

我尝试在C++中做基本的加法,但是大数字显示的不是显示的数字。我想在C++中做基本的加法,但大数字显示

#include <iostream> 

using namespace std; 

int main() 
{ 
    int x; 
    int y; 
    int sub = x + y; 

    cout<<"Enter First number:"<<endl; 
    cin>>x; 
    cout<<"Enter second number:"<<endl; 
    cin>>y; 
    cout << "The sum is: "<< sub << endl; 
    return 0; 
} 

当我运行它时,它显示总和为“6996596”。

+0

不要忽视编译器给你的警告。 – carlosdc

+1

在得到'x'和'y'的值后,移动'sub = x + y'。现在你正在初始化'sub'到'x + y',它的值是未定义的,因此你会得到未定义的行为。 'C++'不会懒惰地评估。 – user975989

+0

懒惰的评价。我甚至没有想到,@ user975989。好决定。值得旋转,回答解释OP出错的地方。 – user4581301

回答

5

sub正在创建并归属于xy之前设置。当你声明变量但是没有初始化时,你会从之前的堆栈中获得未知的值。

如果您将sub变量归属移动到从终端读取xy之后,程序将正常工作。

+0

谢谢我现在明白了。 – laquishabonquiquithe3rd

4

在接受用户输入之前,您正在计算您的总和。此外,您正在汇总两个未初始化的变量,导致未定义的行为。

相关问题