一、问题呈现
1.问题描述
Problem Description
本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。
2.输入输出
Input
输入第一行首先给出一个正整数N,表示学生的个数。接下来一行给出N个学生的成绩,数字间以空格分隔。
Output
按照以下格式输出:
average = 平均成绩
max = 最高成绩
min = 最低成绩
结果均保留两位小数
3.测试样例
样例1
Sample Input
5
80 90 100 90 80
Sample Output
average = 88.00
max = 100.00
min = 80.00
样例2
Sample Input
5
80 90 100 70 80
Sample Output
average = 84.00
max = 100.00
min = 70.00
二、源码实现(+注释)
//编码及注释:Code_流苏
//定义头文件
#include<stdio.h>
#include<stdlib.h>
//f函数 用于实现最大值和最小值的遍历查找
double f(int *a,int n,int m)
{
int i;
//定义index整型变量 并初始化为0 用于存储最大值和最小值下标索引
int index=0;
//循环遍历 查找最大值和最小值
for(i=1;i<n;i++)
{
if(m==1)
{
if(a[i]>=a[index]) index=i; //查找最大值
}
else
{
if(a[i]<=a[index]) index=i;//查找最小值
}
}
//返回浮点值
return a[index]/1.0;
}
//主函数
int main()
{
//定义变量N用于存储及输入学生人数
int N;
//定义数组 用于 存储 循环遍历
int arr[10005];
printf("请输入学生人数:");
scanf("%d",&N);
int i;
//定义sum用于存储求和之后的值
int sum=0;
printf("请输入这些学生的成绩:");
//循环遍历求和
for(i=0;i<N;i++)
{
scanf("%d",&arr[i]);
sum+=arr[i];
}
//输出平均数
printf("average = %.2lfn",sum/(double)N);
//输出最大值
printf("max = %.2lfn",f(arr,N,1));
//输出最小值
printf("min = %.2lfn",f(arr,N,2));
//返回0,代表程序执行结束
return 0;
}
三、测试图
原文链接: https://www.cnblogs.com/yueliusu/p/16023309.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/188277
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!