编写一个简单学生成绩管理程序

  1. #include
    int main(void)
    {
    int n,k;
    float score,sum,ave,max,min;
    sum=0.0,max=0.0,min=150.0;
    for(n=1;n<=4;n++)
    {
     sum=0.0;
     for(k=1;k<=3;k++)
     {
         scanf("%f",&score);
         sum=sum+score;
         if(score>max)
         max=score;
         if(score<min)
         min=score;
     }
     ave=sum/4.0;
     printf("NO%d: ave%f max%f min%f sum%f\n",n,ave,max,min,sum);
                 
    
    }
    return 0;
    }
    为什么min=150.0??

因为这个程序的意思是150是成绩最大值,思路是给min初始化成绩最大值,给max初始化成绩最小值;假如你给min赋初值为0,那么成绩是30 40 50的话,这三个成绩都不满足score<min 岂不是输出最小值为0 了吗,但是你没有0这个成绩,明白了木有

最小值之所以设置得最大,是为了后面比较的时候,能够让真正的最小值浮现。

举个反例:
如果把最小值 设置为0,OK,一个学生的成绩 130 分进来,和最小值 0 比较if(score<min) min=score; 很明显 130 大于 0,所以最低分还是0,这样子下去,除非真有0 分的学生,不然4 个学生的最低分永远是0。但是设置 成150 就不一样了,一个学生的成绩58 进来,if(score<min) min=score; 58 确实小于 150,这样min 就会变成 58,以此达到 “找出最低分” 的效果。max 设置为0 ,同理。

就是为了给这个变量赋一个初值,但是这个值不能太小,因为后面会和score进行比较,如果太小就无法执行if(min>score)下面的语句了。