2017-11-16 27 views
1

私は何かを理解しようとしています。私はまだC + +の初心者です。私はちょうどあなたが値を入力し、それが偶数か奇数かをあなたに知らせるこの小さなプログラムを作成しました。これを行うために、私は "result"と呼ばれる整数を作りました。これは値をとり、次に%2の演算を行います。整数をどこで初期化するかは重要ですか?

しかし私の最初の間違いは、何らかの理由でint resultを "cin >> value"の上に置いてしまったことでした。そして、int resultを "cin >> value"の下に置くと、プログラムはうまくいくはずでした。なぜこれをやっているのですか?

ご協力いただきありがとうございます。これは重複しているが私は謝罪するが、私は何を検索するか分からない。

#include <iostream> 
#include <string> 
#include "Human.h" 
#include <ctime> 
using namespace std; 



int main() { 


    int value = 0; // where I input 
    cin >> value; 
    // if you put int result above cin program changes. 
    int result = value % 2; 

    if (result == 0) { 
     cout << "Even number." << endl; 
    } 
    else { 
     cout << "Odd number." << endl; 
    } 



    return 0; 
} 
+2

C++では、関数は行ごとに実行されます。 'int result = value%2;'が 'cin >> value'の上にあるとき、ユーザが値に入る前に' result'を計算します。したがって、 'int result = 0%2;'です。 'cin >> value'の後に実行すると、まず' cin >> value'が起こりますので、 'value'は入力された値に設定され、' result'はそれから計算されます – Justin

答えて

1

あなたが使用するプログラミング言語がどのようなコードであれ、上から下に実行されます。 まず変数を宣言し、変数に値を与え、偶数か奇数かをチェックする必要があります。

あなたが0%2なりますresultの値を計算するために0であるvalueため、もともと初期化された値を使用したコンパイラresult = value%2;の値を設定した後cinを使用。

だから、cin>>value;を使用してからresult = value%2;に設定する必要があります。

+1

ありがとうございました!それはとても役に立ちました! – Danthecardboardman

+3

コードが「上から下へ」走らない言語はたくさんあります。また、 'result = value%2; 'のような文が実際には、' result'を検査すると、その時点で 'value'の値を返すことを意味する言語があります。 –

+0

いくつかの例を挙げることができますか? –

1

C++はコードを一行一行ずつ読み込みます。あなたが置く前に

あなたが cin >> value;int result = value % 2;を置く
#include <iostream> 

using namespace std; 

int main() { 
int a; 
cout << "a="; 
cin >> a ; 

if(a%2==0) 
    {cout<<"a is even";} 
else 
    {cout<<"a is uneven";} 
} 
+0

ありがとう!それははるかに単純なバージョンです、私はちょうど "%2 == 0"のための整数を作成すると思ったので、私は再びそれを使用する場合は、単に "結果"を書くことができます。 "%2 == 0"全体の代わりに、両方とも素晴らしい!プラス私はどこで "結果"を再度使用するかわからないので、おそらくあなたの方が良いです。とにかくありがとう! – Danthecardboardman

1

、あなたのプログラムが結果を計算します:あなたはそれを読みたいのであれば、あなたの変数first.Iは、プログラムのはるかに簡単なバージョンを作っintになりますあなたの入力によるint valueの値。 あなたのプログラムは計算しますint result = 0 % 2;

関連する問題