2014-10-20 31 views
2

这是我的If If语句,用于我的作业,但它不能按照我预期的方式工作。C++编程(如果其他语句)将不能正确输出

当我输入82作为成绩时,它会显示“您的成绩是=ú”。它显示了一个我没有声明的字符,而不是'B'。其他人也一样。

而是 'A' 的 - @ 而不是 'C' - ╬ 而是 'd' 的 - (不显示任何内容) 而不是 'F' - “提前

#include <iostream> 
using namespace std; 
int main() 

{ 
int score; 
char grade; 
char A, B, C, D, F; 

cout << "Enter your total score: "; 
cin >> score; 

if (score >= 85) 
grade=A; 

else if (score >= 75) 
grade=B; 

else if (score >= 65) 
grade=C; 

else if (score >= 55) 
grade=D; 

else 
grade=F; 

    cout << "Your grade is = " << grade << endl; 


return 0; 

cin.get(); 

} 

谢谢! !

+4

'字符A,B,C,d,F;'宣称其具有在运行一个不确定值的变量-时间。相反,考虑'grade ='A';'等等。 – crashmstr 2014-10-20 15:22:23

+2

char变量A,B,C,D,F的用法是什么?你可以直接分配'grade ='A'','grade ='B''等等。 – Rustam 2014-10-20 15:23:27

回答

11

您声明这些变量,但从来没有将其设置为任何

char A, B, C, D, F; 

你应该给它们赋值

const char A = 'A'; 
const char B = 'B'; 
const char C = 'C'; 
const char D = 'D'; 
const char F = 'F'; 

虽然在此情况下,即使上面可能是多余的。你可以简单地做

if (score >= 85) 
    grade = 'A'; 
else if (score >= 75) 
    grade = 'B'; 
else if (score >= 65) 
    grade = 'C'; 
else if (score >= 55) 
    grade = 'D'; 
else 
    grade = 'F'; 

然后你就可以摆脱char变量都在一起。

4

你声明的变量没有对它们进行初始化:

char A = 'A'; 
char B = 'B'; 
... 
3

试试这个代码

#include<iostream.h> 
#include<conio.h> 
int main() 

{ 
int score; 
    char grade; 
    cout << "Enter your total score: "; 
    cin >> score; 

if (score >= 85) 
grade='A'; 

else if (score >= 75) 
grade='B'; 

else if (score >= 65) 
grade='C'; 

else if (score >= 55) 
grade='D'; 

else 
grade='F'; 

cout << "Your grade is = " << grade << endl; 

getch(); 
return 0; 


} 
+1

此答案不解释原始代码的问题 – anatolyg 2014-10-20 15:55:28