**
试题 历届真题 成绩分析【第十一届】【省赛】【B组】
**
一、完整题目
二、解题思路
这道题应该算蓝桥杯的签到题了,这是最容易的一道题,估计以后也不会有这么简单的题,对于入门的朋友是比较友善的。 主要思路:- 因为数据量不大,直接遍历求得最大值最小值,时间复杂度为O(n)
- 同样遍历求和,再求平均,注意保留两位小数,时间复杂度为O(n)
三、编写代码
#include <stdio.h>
#define N 100000
int max(int *grades,int n)//求最高成绩
{
int i,max;
max=grades[0];//设初值
for(i=1;i<n;i++) if(grades[i]>max) max=grades[i];//遍历求得最大值
return max;
}
int min(int *grades,int n)//求最低成绩
{
int i,min;
min=grades[0];//设初值
for(i=1;i<n;i++) if(grades[i]<min) min=grades[i];//遍历求得最小值
return min;
}
double mean(int *grades,int n)//求平均值
{
int i;
double sum;
for(i=0;i<n;i++) sum+=(double)grades[i];//求和
return sum/n;
}
int main()
{
int n,grades[N];
int i;
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&grades[i]);
printf("%d\n",max(grades,n));
printf("%d\n",min(grades,n));
printf("%.2lf",mean(grades,n));//保留两位小数
return 0;
}
四、测评结果
经测评为满分,没有问题
五、总结评价
此题没有什么难度,但是注意不可粗心大意,做什么题就讲究仔细考虑全面有问题欢迎各位大佬指出
蓝桥杯系列将持续更新,欢迎关注,一起学习