C程序帮助/ If,Else If

时间:2018-09-29 23:48:37

标签: c

这是我提出问题的伪代码。它唯一不返回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 

1 个答案:

答案 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");