这是我提出问题的伪代码。它唯一不返回D的情况是输入60时,但是,输入的任何其他值仍会给出答案D。我使用此轮廓编写了程序以验证结果,并且确实不返回D以外的其他值,或者在输入60的情况下输入E。为什么会这样?我已经知道如何解决这个问题,可以通过放置范围来解决,但是我不知道为什么它现在不返回正确的值
$jsonStr = '{';
$lastElement = count($numbers);
$i = 1;
foreach($numbers as $n)
{
$jsonStr .= number_format($n, 2, '.', '');
if($i != $lastElement){
$jsonStr .= ',';
}
$i++;
}
$jsonStr .= '}';
echo $jsonStr;
C代码:
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
答案 0 :(得分:5)
您需要更改条件的顺序。
即使该数字可以是例如92,也仍然大于60,并且由于它首先检查第一个条件并且条件(Average2>60
)为true,所以它打印“ 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");