C语言100题练习计划——输出学生成绩(平均成绩、最高成绩、最低成绩)
🐼本篇内容简介:一、问题呈现-->二、源码实现(+详细注释)-->三、输出结果展示
🥇C语言100题练习专栏计划:目的:巩固练习C语言,增强上机、动手实践能力,交流学习!题量随时间的增加会有所增加。中间也会插入一些算法的问题,文章内容也会不断打磨、精简优化,争取做到好、然后更好!
C Programming Language
一、问题呈现
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
二、源码实现(+详细注释)
1.注释版
//编码及注释: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 = %.2lf\n",sum/(double)N);
//输出最大值
printf("max = %.2lf\n",f(arr,N,1));
//输出最小值
printf("min = %.2lf\n",f(arr,N,2));
//返回0,代表程序执行结束
return 0;
}
2.简洁版
#include<stdio.h>
#include<stdlib.h>
double f(int *a,int n,int m)
{
int i;
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()
{
int N;
int arr[10005];
printf("请输入学生人数:");
scanf("%d",&N);
int i;
int sum=0;
printf("请输入这些学生的成绩:");
for(i=0;i<N;i++)
{
scanf("%d",&arr[i]);
sum+=arr[i];
}
printf("average = %.2lf\n",sum/(double)N);
printf("max = %.2lf\n",f(arr,N,1));
printf("min = %.2lf\n",f(arr,N,2));
return 0;
}
三、输出结果展示
1.输出结果
请输入学生人数:5
请输入这些学生的成绩:80 90 100 70 80
average = 84.00
max = 100.00
min = 70.00
--------------------------------
Process exited after 14.98 seconds with return value 0
请按任意键继续. . .