2017-10-13 15 views
0

出力ストリームに奇妙な数値が出力されています(コンソールに表示されます)。数字は何の数字を入力しても同じ順序で表示されるようです。それぞれ0、80、0です。私のコードの下にサンプル出力があります。出力ストリームにC++の数字が入力されていません

#include <iostream> 
#include <iomanip> 
#include <cmath> 
using namespace std; 
int main() 
{ 
    int a, b, c; 

    //write program so that a<=b<c or find a way to sort the program so the numbers are in ascending order 

    cout << "This program uses the input of the lengths of 3 sides of a triangle to determine if the triangle is a right triangle." << endl; 
    cout << "Enter the length of side 'a'. " << a << "\n"; 
    cin >> a; 
    cout << "Enter the length of side 'b'. " << b << "\n"; 
    cin >> b; 
    cout << "Enter the length of side 'c'. " << c << "\n"; 
    cin >> c; 
    if ((a * a) + (b * b) == (c * c)) // This means (a^2)+(b^2)=(c^2) 
    { 
     cout << "This is a right triangle." << "\n"; 
    } 
    else if ((b * b) + (c * c) == (a * a)) 
    { 
     cout << "This is a right triangle." << "\n"; 
    } 
    else if ((a * a) + (c * c) == (b * b)) 
    { 
     cout << "This is a right triangle." << "\n"; 
    } 
    else 
    { 
     cout << "This is not a right triangle." << "\n"; 
    } 
    return 0; 
} 

このプログラムは、三角形が直角三角形であるかどうかを決定するために、三角形の3辺の長さの入力を使用します。 サイド 'a'の長さを入力します。 0 サイド 'b'の長さを入力します。 80 サイド 'c'の長さを入力します。 0 これは直角三角形ではありません。

cout << "Enter the length of side 'a'. " << a << "\n"; 

<< a

+0

さて、私は出力で不要な "abc's"を削除しましたが、私のコンソールはこれを出力しています:このプログラムは、三角形の3辺の長さの入力を使って三角形が直角三角形かどうかを判断します。 サイド 'a'の長さを入力します。 サイド 'b'の長さを入力します。 サイド 'b'の長さを入力します。 サイド 'c'の長さを入力します。 サイド 'c'の長さを入力します。 これは直角三角形ではありません。 これは直角三角形ではありません。 –

+0

数値は変数の初期化されていない値で、プロンプトで出力します。これは各プロンプト行の '<< a <<'部分です。それをしないでください。 – davidbak

+0

なぜこれらの二重文を実行するのか分かりません –

答えて

1

aの現在の値を出力するプログラムを指示します。この時点でaには定義された値はありませんが、変数が存在するため、それを印刷しようとすると構文的に正しいものになり、コンパイルされます。何起こりうるので、undefined behaviourにこのuninitializeda結果を使用してますが、何のことは最も可能性の高い起こることはゴミがプリントされます今aによって占められるメモリであることを起こっ何でもありです。あなたの場合、これは0になることが分かります。

この解決方法は、aの値を出力しません。それをする必要はないようです。

cout << "Enter the length of side 'a'.\n"; 

サイドbとcについてこれを繰り返します。

+0

ありがとうございます。それはトリックを行うように見えた。 –

+0

問題を解決した場合は、これを正解としてください。 – Buddy

0

読み取る前に、初期化されていない変数a,b、およびcを印刷しています。

関連する問題