2017-03-03 5 views
0

私はプログラミングが新しく、このコードがうまくいかない理由が混乱しています。たとえば、車両に"C"と入力し、時間と分の両方で1と入力すると、ブロックされてブロックされ、ブロックifは入力されません。私はそれがelse部分を欠いていることを知っているが、ちょうどそれを試してみたが、違いはなかった。私が数分の値を入力すると、プログラムはPress any key to continue...の状態になります。助けてください?if/elseステートメントの出力が表示されない/変数割り当ての問題。初心者のプログラマー

#include <iomanip> 
#include <iostream> 

using namespace std; 

int main() 
{ 
    char vehicle; 
    int hours, minutes; 

    cout << fixed << showpoint << setprecision(2); 

    cout << "If your vehicle is a car, please enter 'C'" << endl; 
    cout << "If your vehicle is a truck, please enter 'T'" << endl; 
    cout << "If you are a senior citizen, please enter 'S'" << endl; 
    cout << "\nEnter here: "; 
    cin >> vehicle; 

    cout << "\nEnter the number of hours you have been parked: "; 
    cin >> hours; 
    cout << "\nEnter the number of minutes you have been parked: "; 
    cin >> minutes; 

    if (vehicle == ('C' || 'c') && minutes <= 30) 
    { 
     if (hours <= 2) 
     cout << "Free" << endl; 
    } 

    system("PAUSE"); 
    return 0; 
} 

答えて

1
if (vehicle == ('C' || 'c') && minutes <= 30) 

あなたはそれがないと思う何をしません。あなたは使用する必要があります。

if ((vehicle == 'C' || vehicle =='c') && minutes <= 30) 

あなたはそれを簡略化することができます。

if (toupper(vehicle) == 'C' && minutes <= 30) 
+0

それでも動作しませんでした – cali4niakris

+0

あなたは何を入力しましたか?何が起こった?あなたは何を期待しましたか?何かが「うまくいかない」と言っても、あまり役に立ちません。 –

+0

@ cali4niakris、私のために働く。 http://ideone.com/8Gk5Ykを参照してください。 –

0

あなたのプログラムは、論理エラーを持っている(またはあなたが論理エラーにつながった構文エラーを言うことができます)。

条件あなたは、このような大文字と小文字を持つ車両を確認する必要がある場合には「C」または「C」が、あることを

if ((vehicle == 'C' || vehicle == 'c') && minutes <= 30)

あなたが車をチェックしている無意識のうちに、あなたは、ビット単位の操作を行っています'C'と 'C'に表示されます。これらは初心者の間違いですが、学習の不可欠な部分です。

+0

これに変更しましたが、まだ何も出力していません – cali4niakris

+0

@ cali4niakrisあなたは何を入力しましたか? –

+0

@ cali4niakris ifの直後にcout文を入れ、印刷するかどうか確認してください。 –

関連する問題