0

我正在尝试编写一个程序,该程序要求获得学费学分以及本科或研究生课程。用户输入学分,然后必须输入U本科或G研究生。我的条件语句有问题,如果用户输入U,则计算和输出本科学分的价格,与研究生类似。我试图U在 IF 条件下输入,但要么是一个价格,要么是另一个输出。

#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'或尝试

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

其次,虽然这不一定是错误输入,但cout<<endl<<endl;它有点浪费,因为它两次刷新 cout 的缓冲区,中间只添加了 1 个字符。打字cout<<'\n'<<endl;可以解决这个问题。

于 2012-09-27T03:40:19.533 回答
1

它或多或少是所有已经说明的:

  1. 删除声明,char U因为它从不使用
  2. 将类型更改Secondchar(从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

Second 被声明为 double,但看起来您希望用户输入一个字符。

于 2012-09-27T03:41:01.407 回答
-1

采用

using namespace std;

在头文件下

于 2018-12-07T16:13:01.070 回答