题解 | #统计成绩#
统计成绩
https://www.nowcoder.com/practice/cad8d946adf64ab3b17a555d68dc0bba
#include<stdio.h> int main() { int n,i=0;//定义要输入n科成绩,n为整数,所以用int,i是for循环常用变量,用整型int定义 float max,min,eve=0;//定义max为输入成绩最大值,min为输入成绩最小值,eve为输入成绩平均值,因为成 //绩为分数,所以用float定义 scanf("%d\n",&n);//输入n,才知道要定义是多大的数组 float a[n];//定义成绩数组,因为成绩为分数,所以用float定义数组 for(i=0;i<n;i++)//用for循环挨个往数组中输入成绩,因为数组下标从0开始,到n-1结束,所以是i=0;i<n { scanf("%f ",&a[i]);//输入成绩 } max=a[0];//最大值,最小值是比较出来的,所以要先有参照,一般选输入的第一个成绩为初参照 min=a[0]; for(i=0;i<n;i++)//整体循环一遍,比较出最大值,最小值,计算出平均数 { if(a[i]>max)//max为最大值,有后面输入的成绩比先前的大就进入 { max=a[i];//用目前最大值覆盖 } if(a[i]<min)//min为最小值,有后面输入的成绩比先前的小就进入 { min=a[i];//用目前最小的覆盖 } eve=eve+a[i]/n;//累加要先给初始值比如eve=0,要不然会随机给值 } printf("%.2f %.2f %.2f",max,min,eve);//按格式输出.2f为保留小数点后两位 return 0; }
总结:
刚开始我们小白不懂就搜答案,看大佬怎么写的,要反问为什么要这样写,因为代码每一句都有它的作用,多问几个问什么,还要怀疑,这样可不可以,改参数看结果,明白其中缘由,对自己很有帮助,循环参数自己推导比空想半天更有作用。