题解 | #统计成绩#
统计成绩
https://www.nowcoder.com/practice/cad8d946adf64ab3b17a555d68dc0bba
//看到大家都是直接根据n的范围创建一个数组,没有动态开辟的写法,就简单发一下 #include <stdio.h> #include <stdlib.h> int main() { int n; scanf("%d",&n); double* arr = {0};//创建一个数组指针 arr = (double*)malloc(n*sizeof(double));//使用动态开辟内存开销比较合理一点,注意头文件和用数组指针接收 for(int i=0; i<n; i++)//输入各科成绩 { scanf("%lf",arr+i); } double max=0,sum=0; double min=*(arr+1);//这里没深入想其它方法,就先默认第一个数最小然后在下面遍历数组时进行更新(就像选择排序一样) for(int i=0; i<n; i++) { if(*(arr+i) > max)//找最大值 { max = *(arr+i); } if(*(arr+i) < min)//找最小值 { min = *(arr+i); } sum+=*(arr+i); } printf("%.2f %.2f %.2f",max,min,sum/n); return 0; }