再帮朋友写个题-小型成绩管理系统

在这里插入图片描述

题目没说输入学生的名字,所以有一些小问很难说清楚,呃呃呃,题目不够好吧,为了题而出的题

#include <stdio.h>

struct student 
{
    
    
	double a;
	double b;
	double c;
	double d;
	double e;
} fh[100];

int main () 
{
    
    
	int n;
	double as = 0, bs = 0, cs = 0, ds = 0, es = 0, max = 0;
	double pd[5] = {
    
    0};
	printf("输入学生的人数:");
	scanf("%d", &n);
	printf("输入每个学生五科成绩:");
	for (int i = 0; i < n; i++) 
	{
    
    
		scanf("%lf %lf %lf %lf %lf", &fh[i].a, &fh[i].b, &fh[i].c, &fh[i].d, &fh[i].e);
	}
	printf("计算每个人的平均分:");
	for (int i = 0; i < n; i++) 
	{
    
    
		printf("%lf ", (fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5);
	}
	printf("\n");
	printf("计算每门课的平均分:");
	for (int i = 0; i < n; i++) 
	{
    
    
		as = fh[i].a + as;
		bs = fh[i].b + bs;
		cs = fh[i].c + cs;
		ds = fh[i].d + ds;
		es = fh[i].e+es;
	}
	printf("%lf %lf %lf %lf %lf", as / n, bs / n, cs / n, ds / n, es / n);
	printf("\n");
	for (int i = 0; i < n; i++) 
	{
    
    
		if (fh[i].a > pd[0]) 
		{
    
    
			pd[0] = fh[i].a;
		}
		if (fh[i].b > pd[1]) 
		{
    
    
			pd[1] = fh[i].b;
		}
		if (fh[i].c > pd[2]) 
		{
    
    
			pd[2] = fh[i].c;
		}
		if (fh[i].d > pd[3]) 
		{
    
    
			pd[3] = fh[i].d;
		}
		if (fh[i].e > pd[4]) 
		{
    
    
			pd[4] = fh[i].e;
		}
	}
	for (int i = 0; i < 5; i++) 
	{
    
    
		if (pd[i] > max) 
		{
    
    
			max = pd[i];
		}
	}
	printf("对应分数中最高分学生的分数:%lf ", max);//没有名字就用分数代替这个人吧。
	printf("\n");
	for (int i = 0; i < 5; i++) 
	{
    
    
		if (pd[i] == max) 
		{
    
    
			if (i == 0) 
			{
    
    
				printf("那个学生第一门成绩高分 ");
			}
			if (i == 1) 
			{
    
    
				printf("那个学生第二门成绩高分 ");
			}
			if (i == 2) 
			{
    
    
				printf("那个学生第三门成绩高分 ");
			}
			if (i == 3) 
			{
    
    
				printf("那个学生第四门成绩高分 ");
			}
			if (i == 4)
			 {
    
    
				printf("那个学生第五门成绩高分 ");
			}
		}
	}
	printf("\n");
	printf("平均分方差:");
	double sum = 0, sum1 = 0;
	for (int i = 0; i < n; i++) 
	{
    
    
		sum = ((fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5) * ((fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5)
		      + sum;
	}
	sum = sum / n;
	for (int i = 0; i < n; i++) 
	{
    
    
		sum1 = (fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5 + sum1;
	}
	sum1 = sum1 / n;
	sum1 = sum1 * sum1;
	printf("%lf", sum - sum1);
	return 0;
}

在这里插入图片描述
后来跟我说居然写漏了,然后我再写
在这里插入图片描述

#include <stdio.h>

//假设成绩总分是100分。
struct student 
{
    
    
	double a;
	double b;
	double c;
	double d;
	double e;
} fh[1000];

void swap (double ans[], int n) 
{
    
    
	int temp;
	for (int i = 0; i < n - 1; i++) 
	{
    
    
		for (int j = 0; j < n - i - 1; j++) 
		{
    
    
			if (ans[j] < ans[j + 1]) 
			{
    
    
				temp = ans[j];
				ans[j] = ans[j + 1];
				ans[j + 1] = temp;
			}
		}
	}
}

int main () 
{
    
    
	int n;
	double as = 0, bs = 0, cs = 0, ds = 0, es = 0, max = 0;
	double pd[5] = {
    
    0}, ans[1000] = {
    
    0};
	double s[99999] = {
    
    0};
	printf("输入学生的人数:");
	scanf("%d", &n);
	printf("输入每个学生五科成绩:");
	for (int i = 0; i < n; i++) 
	{
    
    
		scanf("%lf %lf %lf %lf %lf", &fh[i].a, &fh[i].b, &fh[i].c, &fh[i].d, &fh[i].e);
	}
	printf("计算每个人的平均分:");
	for (int i = 0; i < n; i++) 
	{
    
    
		printf("%.2lf ", (fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5);
	}
	printf("\n");
	printf("计算每门课的平均分:");
	for (int i = 0; i < n; i++) 
	{
    
    
		as = fh[i].a + as;
		bs = fh[i].b + bs;
		cs = fh[i].c + cs;
		ds = fh[i].d + ds;
		es = fh[i].e+es;
	}
	printf("%.2lf %.2lf %.2lf %.2lf %.2lf", as / n, bs / n, cs / n, ds / n, es / n);
	printf("\n");
	for (int i = 0; i < n; i++) 
	{
    
    
		if (fh[i].a > pd[0]) 
		{
    
    
			pd[0] = fh[i].a;
		}
		if (fh[i].b > pd[1]) 
		{
    
    
			pd[1] = fh[i].b;
		}
		if (fh[i].c > pd[2]) 
		{
    
    
			pd[2] = fh[i].c;
		}
		if (fh[i].d > pd[3]) 
		{
    
    
			pd[3] = fh[i].d;
		}
		if (fh[i].e > pd[4]) 
		{
    
    
			pd[4] = fh[i].e;
		}
	}
	for (int i = 0; i < 5; i++) 
	{
    
    
		if (pd[i] > max) 
		{
    
    
			max = pd[i];
		}
	}
	printf("对应分数中最高分学生的分数:%.2lf ", max);//没有名字就用分数代替这个人吧。
	printf("\n");
	for (int i = 0; i < 5; i++) 
	{
    
    
		if (pd[i] == max) 
		{
    
    
			if (i == 0) 
			{
    
    
				printf("第一门成绩高分 ");
			}
			if (i == 1) 
			{
    
    
				printf("第二门成绩高分 ");
			}
			if (i == 2) 
			{
    
    
				printf("第三门成绩高分 ");
			}
			if (i == 3) 
			{
    
    
				printf("第四门成绩高分 ");
			}
			if (i == 4) 
			{
    
    
				printf("第五门成绩高分 ");
			}
		}
	}
	printf("\n");
	printf("平均分方差:");
	double sum = 0, sum1 = 0;
	for (int i = 0; i < n; i++) 
	{
    
    
		sum = ((fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5) * ((fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5)
		      + sum;
	}
	sum = sum / n;
	for (int i = 0; i < n; i++) 
	{
    
    
		sum1 = (fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e) / 5 + sum1;
	}
	sum1 = sum1 / n;
	sum1 = sum1 * sum1;
	printf("%.2lf", sum - sum1);
	printf("\n");
	printf("学生总成绩高到低:");
	for (int i = 0; i < n; i++) 
	{
    
    
		ans[i] = fh[i].a + fh[i].b + fh[i].c + fh[i].d + fh[i].e;
	}
	printf("\n");
	int k = n;
	swap(ans, k);
	for (int i = 0; i < n; i++) 
	{
    
    
		printf("%.2lf ", ans[i]);
	}
	printf("\n");
	printf("假设A等级为75-100分,假设B等级为50-75分,假设C等级为25-50分,假设C等级为0-25分");
	printf("\n");
	for (int i = 0; i < n; i++) 
	{
    
    
		if (fh[i].a >= 75 && fh[i].a <= 100) 
		{
    
    
			s[0]++;
		}
		if (fh[i].a >= 50 && fh[i].a < 75) 
		{
    
    
			s[1]++;
		}
		if (fh[i].a >= 25 && fh[i].a < 50) 
		{
    
    
			s[2]++;
		}
		if (fh[i].a >= 0 && fh[i].a < 25) 
		{
    
    
			s[3]++;
		}
	}
	printf("第一门课中:\n");
	printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[0], s[0] / n);
	printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[1], s[1] / n);
	printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[2], s[2] / n);
	printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[3], s[3] / n);
	printf("\n");
	for (int i = 0; i < n; i++) 
	{
    
    
		if (fh[i].b >= 75 && fh[i].b <= 100) 
		{
    
    
			s[0 + 4]++;
		}
		if (fh[i].b >= 50 && fh[i].b < 75) 
		{
    
    
			s[1 + 4]++;
		}
		if (fh[i].b >= 25 && fh[i].b < 50) 
		{
    
    
			s[2 + 4]++;
		}
		if (fh[i].b >= 0 && fh[i].b < 25) 
		{
    
    
			s[3 + 4]++;
		}
	}
	printf("第二门课中:\n");
	printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[4], s[4] / n);
	printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[5], s[5] / n);
	printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[6], s[6] / n);
	printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[7], s[7] / n);
	printf("\n");
	for (int i = 0; i < n; i++) 
	{
    
    
		if (fh[i].c >= 75 && fh[i].c <= 100) 
		{
    
    
			s[0 + 8]++;
		}
		if (fh[i].c >= 50 && fh[i].c < 75) 
		{
    
    
			s[1 + 8]++;
		}
		if (fh[i].c >= 25 && fh[i].c < 50) 
		{
    
    
			s[2 + 8]++;
		}
		if (fh[i].c >= 0 && fh[i].c < 25) 
		{
    
    
			s[3 + 8]++;
		}
	}
	printf("第三门课中:\n");
	printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[8], s[8] / n);
	printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[9], s[9] / n);
	printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[10], s[10] / n);
	printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[11], s[11] / n);
	printf("\n");
	for (int i = 0; i < n; i++) 
	{
    
    
		if (fh[i].d >= 75 && fh[i].d <= 100) 
		{
    
    
			s[0 + 12]++;
		}
		if (fh[i].d >= 50 && fh[i].d < 75) 
		{
    
    
			s[1 + 12]++;
		}
		if (fh[i].d >= 25 && fh[i].d < 50) 
		{
    
    
			s[2 + 12]++;
		}
		if (fh[i].d >= 0 && fh[i].d < 25) 
		{
    
    
			s[3 + 12]++;
		}
	}
	printf("第四门课中:\n");
	printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[0 + 12], s[0 + 12] / n);
	printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[1 + 12], s[1 + 12] / n);
	printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[2 + 12], s[2 + 12] / n);
	printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[12 + 3], s[3 + 12] / n);
	printf("\n");
	for (int i = 0; i < n; i++) 
	{
    
    
		if (fh[i].e >= 75 && fh[i].e <= 100) 
		{
    
    
			s[0 + 16]++;
		}
		if (fh[i].e >= 50 && fh[i].e < 75) 
		{
    
    
			s[1 + 16]++;
		}
		if (fh[i].e >= 25 && fh[i].e < 50) 
		{
    
    
			s[2 + 16]++;
		}
		if (fh[i].e >= 0 && fh[i].e < 25) 
		{
    
    
			s[3 + 16]++;
		}
	}
	printf("第五门课中:\n");
	printf("A对应人数:%.2lf 对应百分比:%.2lf\n", s[0 + 16], s[0 + 16] / n);
	printf("B对应人数:%.2lf 对应百分比:%.2lf\n", s[1 + 16], s[1 + 16] / n);
	printf("C对应人数:%.2lf 对应百分比:%.2lf\n", s[2 + 16], s[2 + 16] / n);
	printf("D对应人数:%.2lf 对应百分比:%.2lf\n", s[16 + 3], s[3 + 16] / n);
	return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_52045928/article/details/116749968