(C语言练习)假设某实验小组的5名学生,C语言模考成绩已给定(要求学生从外部键盘输入),现要求对其降序输出,并统计低于平均分的学生人数,并输出最高分和最低分。

(C语言练习)假设某实验小组的5名学生,C语言模考成绩已给定(要求学生从外部键盘输入),现要求对其降序输出,并统计低于平均分的学生人数,并输出最高分和最低分。

一.代码

#include <iostream>
#include<malloc.h>
int main()
{
     
	int * p;  //定义指针变量
	int a;
	float avg=0; //平均成绩
	float sum = 0;
	int count=0; //定义低于平均成绩的人数
	int i, j, t;
	int len;  //定义实验小组学生变量
	printf("请输入这个实验小组的学生数量\n");
	scanf_s("%d", &len);
	printf("这五位学生的考试成绩分别是:\n");
	//通过malloc函数分配内存空间
	p = (int *)malloc(5 * 5);
	for (a = 0; a < len; a++)
	{
     
		scanf_s("%d", &p[a]);
		sum = sum + p[a];     //计算这5个人的总分数
	}
	printf("这五名学生的总成绩是:%0.2f\n", sum);
	//计算这5个人的平均分数
	avg = sum / 5;
	printf("这五名学生的平均分是:%0.2f\n", avg);
	
	
	//通过冒泡排序给学生成绩进行降序操作
	for (i = 0; i < len - 1; i++)
	{
     
		for (j = 0; j < len - 1 - i; j++)
		{
     
			if (p[j] < p[j + 1])
			{
     
				t = p[j];
				p[j] = p[j + 1];
				p[j + 1] = t;
			}
		}
	}
	printf("这五位学生通过降序排后的成绩是:\n");
	for (int k = 0; k < len; k++)
	{
     
		printf("%d\t", p[k]);
		printf("\n");
		//判断低于平均分数的条件
		if (p[k] < avg)
		{
     
			count++;    //如果低于平均分 记录一次
			
		}
	}
	
	printf("低于平均成绩的人数是:%d\n", count);

	//因为已经降序输出了,所以第1个学生成绩是分数最高的
	printf("这五个学生中最高成绩是:%d\n", p[0]);

	//同理,最后一个输出的学生成绩是分数最低的
	printf("这五个学生中最低成绩是:%d\n", p[len-1]);


	return 0;

}

二.输出结果

**请输入这个实验小组的学生数量
5
这五位学生的考试成绩分别是:
80
90
70
50
60
这五名学生的总成绩是:350.00
这五名学生的平均分是:70.00
这五位学生通过降序排后的成绩是:
90
80
70
60
50
低于平均成绩的人数是:2
这五个学生中最高成绩是:90
这五个学生中最低成绩是:50**

你可能感兴趣的:(c语言,指针,算法)