注册 登录
编程论坛 C语言论坛

请问这个哪里出问题了?输入不定数目的成绩,输入-1时停止,在先后输入54,-1,但结果是26.5

thenine 发布于 2020-10-17 09:51, 1088 次点击
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int grade,sum = 0,i=0;
    float average;
    printf("Plesase input the grade,if input -1,it will stop.\n");
    scanf("%d",&grade);
    i=i+1;
    sum = sum +grade;
    while(1){
            if(grade!=-1){
                printf("Plesase input the grade,if input -1,it will stop.\n");
            scanf("%d",&grade);
            sum = sum + grade;
            i = i+1;
                }
                else{
                        break;
                }
      }
      if(i!=0){
        average=(float)sum/i;
        printf("The average grade is:%f\n",average);
      }
      else{
        printf("you don't input  any grade.\n");
      }
}
1 回复
#2
thenine2020-10-17 10:13
我自个来结帖了,
地二次输入-1的时候-1已经加入了,sum ,i,中了,sum已经为53,i==1
所以要将while中的输入在if之前
1