所以我正在做这个任务,我必须使用5个if语句进行评分...我的问题是我输入分数后 我的第一次尝试
if(grade >= 90 )
{
puts("A");
}
if(grade >= 80 )
{
puts("B");
}
if(grade >=70 )
{
puts("C");
}
if(grade >=60 )
{
puts("D");
}
if(grade >=50 )
{
puts("F");
}
当我运行这个程序时,我得到所有等级字母..例如,如果我输入96我应该只得到A ...但是我得到A B C D F不同的尝试
if(grade >= 100 || grade>= 90 )
{
puts("A");
}
if(grade >= 89 || grade>= 80 )
{
puts("B");
}
if(grade >=79 || grade>= 70)
{
puts("C");
}
if(grade >=69 || grade>= 60)
{
puts("D");
}
if(grade >=59 || grade>= 50)
{
puts("F");
}
答案 0 :(得分:4)
撤销支票的顺序。升级字母等级,因为更高的检查通过。
const char *lettergrade = "F";
if (grade >= 60) {
lettergrade = "D";
}
if (grade >= 70) {
lettergrade = "C";
}
if (grade >= 80) {
lettergrade = "B";
}
if (grade >= 90) {
lettergrade = "A";
}
puts(lettergrade);
答案 1 :(得分:2)
您正在寻找else
:
if(grade >= 90 )
{
puts("A");
}
else if(grade >= 80 )
{
puts("B");
}
// and so on
如果没有它,当然,grade
(例如)92 >= 90
和也 >= 80
。
您在下面说过,由于无法理解的原因,您不能使用else
。我确定情况并非如此,因为有人教你编写错误的代码。你必须误解这个要求。但如果它 是真的,答案肯定是显而易见的吗?
if(grade >= 90 )
{
puts("A");
}
if(grade < 90 && grade >= 80 )
{
puts("B");
}
// and so on
答案 2 :(得分:2)
虽然“逻辑”转换将使用else
,如果由于某些[愚蠢]原因而绝对禁止,那么也可以使用函数来解决这个问题!它避免了else
和结果使用更整洁和更模块化的代码 - 这样的构造在我的代码中并不罕见。 (话虽如此,它可能不是老师正在寻找的东西; - )
使用签名char* getGrade(int score)
创建一个函数。然后,而不是“放入”if
,只需return
(正确的值)并使用第一种方法。 return
将“在当时结束函数”,因此不会执行解决原始问题的其他if
语句。然后可以很容易地使用结果:
puts(getGrade(theirScore));
祝你好运这些“任务”!
答案 3 :(得分:2)
好吧,既然你对其他事情感到不安,你可以这样做 -
if(grade >= 90 )
{
puts("A");
}
if(grade >= 80 && grade <90 )
{
puts("B");
}
if(grade >=70 && grade < 80 )
{
puts("C");
}
if(grade >=60 && grade < 70)
{
puts("D");
}
if(grade >=50 && grade < 60)
{
puts("F");
}
你用OR编写的内容没有任何意义,如果等级&gt; = 100,那么当然等级> = 90,没有理由添加该条件(并且它不会为你完成工作)
答案 4 :(得分:1)
您可以定义2个约束,例如:
if (grade >=90){
//do something
}
if (grade >= 80 && grade < 90){
//do something
} // and so on...
这确保了if语句中的代码段只有在满足条件的情况下才会运行。和&amp;&amp;符号代表'AND'
答案 5 :(得分:1)
使用else ifs:
if(grade >= 90 )
{
puts("A");
}
else if(grade >= 80 )
{
puts("B");
}
else if(grade >=70 )
{
puts("C");
}
else if(grade >=60 )
{
puts("D");
}
else if(grade >=50 )
{
puts("F");
}
但是,要遵循良好实践并使程序易于扩展和维护,您可能希望以更智能的方式构建它。一种好的方法是存储一个包含等级阈值和相应字母的结构数组。如果按等级阈值对其进行排序,则可以从右到左遍历数组并停在学生成绩大于阈值的第一个位置。想一想!
答案 6 :(得分:1)
if(grade>=90)
puts("A");
if(grade>=80&&grade<90)
puts("B");
if(grade>=70&&grade<80)
puts("c");
if(grade>=60&&grade<70)
puts("D");
if(grade>=50&&grade<60)
puts("E");
试试这个,我认为它有效。