输入10个学生的C语言成绩(假设成绩为整数值),求最高成绩、最低成绩和平均值。
输入格式要求:"%d" 提示信息:"请输入10个学生的C成绩:\n"
输出格式要求:
“10个学生的C成绩分别为:\n”
“%d "
10个成绩的最后输出一个”\n"
“最高成绩是%d,是第%d个学生\n”
“最低成绩是%d,是第%d个学生\n”
“10名学生的C成绩的平均分为:%.2f\n”
程序运行示例如下:
请输入10个学生的C成绩:
80 90 93 78 83 67 79 60 64 45
10个学生的C成绩分别为:
80 90 93 78 83 67 79 60 64 45
最高成绩是93,是第3个学生
最低成绩是45,是第10个学生
10名学生的C成绩的平均分为:73.90
#include<stdio.h>
int main()
{
int score[10], index_max=0, i, max, min, index_min=0; //提前对下标赋初值0,和第18行相对应,默认是以score[0]为最大值和最小值
float aver;
printf("请输入10个学生的C成绩:\n");
for (i = 0; i < 10; i++)
{
scanf_s("%d", &score[i]); //VS2019中需要对scanf加_s,其他编译器不需要加
}
printf("\n");
printf("10个学生的C成绩分别为:\n");
for (i = 0; i < 10; i++)
{
printf("%d ", score[i]);
}
printf("\n");
min = max = score[0];
aver = (float)score[0] / 10.0; //考虑到下标的问题,提前对aver赋初值,即将平均值分开计算再累加
for (i = 1; i < 10; i++)
{
if (max < score[i])
{
max = score[i];
index_max = i;
}
if (min > score[i])
{
min = score[i];
index_min = i;
}
aver += (float)score[i] / 10.0;
}
printf("最高成绩是%d,是第%d个学生\n", max, index_max + 1);
printf("最低成绩是%d,是第%d个学生\n", min, index_min + 1);
printf("10名学生的C成绩的平均分为:%.2f\n", aver);
}