C程序帮助/If,Else If
这是我用来提问的密码。唯一不返回D的情况是当输入60时,输入的任何其他值仍然给出答案D。我用这个大纲编写程序来验证结果,它确实不返回D以外的值,或者在输入60的情况下,返回E。这是为什么?我已经知道如何解决它,这将是通过放置范围,但我不知道为什么它现在不返回正确的值C程序帮助/If,Else If,c,C,这是我用来提问的密码。唯一不返回D的情况是当输入60时,输入的任何其他值仍然给出答案D。我用这个大纲编写程序来验证结果,它确实不返回D以外的值,或者在输入60的情况下,返回E。这是为什么?我已经知道如何解决它,这将是通过放置范围,但我不知道为什么它现在不返回正确的值 for each student if student's average > 60 award student a D else if student's average > 70 award st
for each student if student's average > 60
award student a D
else if student's average > 70
award student a C
else if student's average > 80
award student a B
else if student's average > 90
award student an A
else
award student an E
C代码:
#include <stdio.h>
int main()
{
int Average1, Average2, Average3, Average4;
Average1 = 60;
Average2 = 78;
Average3 = 65;
Average4 = 50;
if (Average2>60)
{
printf("D");
}
else if (Average2>70)
{
printf("C");
}
else if (Average2>80)
{
printf("B");
}
else if (Average2>90)
{
printf("A");
}
else
printf("E");
return 0;
}
#包括
int main()
{
int平均值1,平均值2,平均值3,平均值4;
平均值1=60;
平均2=78;
平均3=65;
平均4=50;
如果(平均值2>60)
{
printf(“D”);
}
否则如果(平均值2>70)
{
printf(“C”);
}
否则如果(平均值2>80)
{
printf(“B”);
}
否则如果(平均值2>90)
{
printf(“A”);
}
其他的
printf(“E”);
返回0;
}
您需要更改条件的顺序。
例如,尽管数字可以是92,但仍然大于60,并且由于它首先检查第一个条件,并且条件(Average2>60
)为真,因此它打印“D”。
然后它不会检查下面的其他条件,因为它们是else if
您需要首先检查Average2>90
,然后检查Average2>80
,依此类推
if (Average2>90)
{
printf("A");
}
else if (Average2>80)
{
printf("B");
}
else if (Average2>70)
{
printf("C");
}
else if (Average2>60)
{
printf("D");
}
else
printf("E");
您需要更改条件的顺序。 例如,尽管数字可以是92,但仍然大于60,并且由于它首先检查第一个条件,并且条件(
Average2>60
)为真,因此它打印“D”。
然后它不会检查下面的其他条件,因为它们是else if
您需要首先检查Average2>90
,然后检查Average2>80
,依此类推
if (Average2>90)
{
printf("A");
}
else if (Average2>80)
{
printf("B");
}
else if (Average2>70)
{
printf("C");
}
else if (Average2>60)
{
printf("D");
}
else
printf("E");
错误在原始伪代码中。问题是修复伪代码中的错误,还是预期伪代码是正确的?想想看;对于大于60的任何值,第一个条件为真,仅处理第一个真条件块。通过简单的代码演练,这应该是显而易见的。@ZhangQi:他根本不应该这样做,60的正确分数是E——这从最初的伪代码中是清楚的。但是,该代码仅为原始伪代码中的错误值生成正确的结果。问题是修复伪代码中的错误,还是预期伪代码是正确的?想想看;对于大于60的任何值,第一个条件为真,仅处理第一个真条件块。通过简单的代码演练,这应该是显而易见的。@ZhangQi:他根本不应该这样做,60的正确分数是E——这从最初的伪代码中是清楚的。但是,代码仅为值生成正确的结果。我想到了条件的排列顺序,但由于伪代码被认为是正确的,所以我寻找了一个不同的解决方案。欢迎你:我建议你对你读到的内容持怀疑态度,因为你不能保证它在总体上是正确的。另外,如果你发现一个答案有帮助,请投票并接受它,这样它可以帮助其他人在将来面临类似的问题。Yall,重新阅读这个问题让我看到了我的错误。我以为第一个条件是60岁。因为我一直在想,为什么有人超过60岁就会得D?一些我忽略的东西,我的坏。谢谢你的帮助,我很感激!谢谢我想到了条件的排列顺序,但由于伪代码被认为是正确的,所以我寻找了一个不同的解决方案。欢迎你:我建议你对你读到的内容持怀疑态度,因为你不能保证它在总体上是正确的。另外,如果你发现一个答案有帮助,请投票并接受它,这样它可以帮助其他人在将来面临类似的问题。Yall,重新阅读这个问题让我看到了我的错误。我以为第一个条件是60岁。因为我一直在想,为什么有人超过60岁就会得D?一些我忽略的东西,我的坏。谢谢你的帮助,我很感激!