2016-09-04 7 views
-3

私は大学でC++を学び始めました。最初の課題は基本的な計算を行うプログラムを作ることです。私は私のコードが誤解されていないように感じるが、私は変数 "合計"を表示すると、私は方法である答えを得る。同じ数字を複数回入力しても答えの値は変わります。たとえば、変数ごとに2を入力すると、最初は1864273973、2回目は1772335157になります。何が原因だろうか?誰かが疑問を持っているなら、私はmacbook proとコードブロックを使っています。私は自分のコードも含んでいます。単純な数学の問題で間違った答えが表示されました。C++

#include <iostream> 
#include <stdlib.h> 
#include <math.h> 
using namespace std; 

int main() 
{ 
//variabe declarations 
int number, number2; 
int sum, difference, product, dividend; 

//calculations 
sum = number + number2; 
difference = number - number2; 
product = number * number2; 
dividend = number/number2; 

//user inputs 
cout << "\n1 of 2: Enter a number: "; 
cin >> number; 
cout << "\n2 of 2: Enter second number :"; 
cin >> number2; 
cout << "\nNumber 1 entered: " << number << "\nNumber 2 entered: " << number2; 

//output 
cout << "\n" << number << "+" << number2 << "=" << sum << "\n"; 

} 
+0

なぜ前に計算していますか?これは、変数が更新されず、ユーザー入力を格納した後に式が再計算されないため、結果に影響します。最後に計算を入れますが、結果が出力される前に – Li357

+1

「自分のコードが間違っていないように感じます。あなたは間違っていると感じるああとてもとても間違っています。 pracの作業を試みる前に、おそらくもっといくつかのクラスに行くでしょう... – John3136

+2

あなたは入力を得る前に計算しています。つまり、初期化されていない変数で計算しています。 **あなたはAとBが何であるかを知る前に、どのようにA + B **の加算を計算できますか? *基本的な数学は、数値が何であるかを知る前に2つの数値で計算することはできず、使用可能な結果が得られることを期待しています。あなたが書いているコードを実際にキーボードで叩くのではなく、実際に読むことを学ぶ。 –

答えて

0

今日、ほぼすべての言語が構造化されたシステムを使用しています。上から下に向かって読み込まれるので、 "a = b + c"としてからcin >> aとすると、b + cからの計算は新しい入力後に失われます。 宣言されているが初期化されていない変数を使用して計算しようとしています。 C++では、これは新しい変数が "ゴミ箱"(おそらく望ましくない数字)を受け取るだけです。この問題を解決するには、数学をやる前に実際に数と数2を受け取りたいと思います。

+0

'これは、新しい変数が単に "ゴミ箱"を受け取るようにします - 実際には未定義の振る舞いなので、プログラムの*すべての*部分に何も起こりません。 –

関連する問題