0

授業料の単位と学部または大学院のクラスを要求するプログラムを作成しようとしています。ユーザーは単位数を入力し、次にU学部またはG大学院を入力する必要があります。条件ステートメントに問題があります。ユーザーが を入力Uすると、学部の単位の価格が計算され、大学院と同様に出力されます。IF条件でエントリーしようとしてUいますが、どちらか一方の価格か他方が出力されます。

#include <stdlib.h>                             
#include <iostream.h>                          

int main ()                                    
{                                             
 const double Under = 380.00 ; 
 const double Grad = 395.00 ;
 char U , G ; 
 double First, Second, Third, Fourth, Fifth, Sixth ;

 cout << endl << endl ;       
 cout << " To calculate your tuition enter the amount of credits, then enter type of"  ; 
 cout << endl ; 
 cout << " classes." ; 

 cout << endl << endl ; 
 cout << " Enter number of credits. " ; 
 cin >> First ; 
 cout << endl << endl ;

 cout << " Enter U for Undergraduate or G for Graduate: " ; 
 cin >> Second ; 

 cout << endl << endl ; 
 cout << " Your tuition total is: " ; 

 Third = First * Under ; 

 Fourth = First * Grad ; 

 if ( Second == U )
 cout << Third ;

 else 
 cout << Fourth ; 
 cout << endl << endl ; 

 system ("Pause");                      

 }                                               
4

6 に答える 6

1

に値を与えることはありませんU。現在、その内容はガベージであるため、ランダムな動作が発生します。'U'変数に割り当てるかU、条件を次のように変更してみてください。

if( Second == 'U' )
于 2012-09-27T03:40:09.287 に答える
1

ここにいくつか問題があります。

主なものは、C++の文字にはこのように一重引用符が付いていること'c'です。これがエラーの原因である可能性があります。Uをどこにも初期化したことがないので、Uを初期化する'U'か、試してください。

if ( Second == 'U' )
    cout << Third ;

次に、これは必ずしもエラーではありませんが、cout<<endl<<endl;1文字だけを追加してcoutのバッファを2回フラッシュするため、入力は少し無駄になります。入力cout<<'\n'<<endl;すると修正されます。

于 2012-09-27T03:40:19.533 に答える
1

それは多かれ少なかれすでに述べられたすべてです:

  1. の宣言はchar U使用されないため、削除してください
  2. のタイプをSecondに変更しますchar(リストから削除してdouble追加しますchar Second;
  3. ifステートメントを次のように変更しますif ( ( Second == 'U' ) || ( Second == 'u' ) )
于 2012-09-27T03:47:15.407 に答える
0

どこにも見えませんU = 'U'。最初に宣言されますが、初期化されることはありません。あなたUはただの変数です。その中にキャラクターを割り当てる必要があり'U'ます。

于 2012-09-27T03:40:13.273 に答える
0

2番目はdoubleとして宣言されていますが、ユーザーが文字を入力することを期待しているようです。

于 2012-09-27T03:41:01.407 に答える