要求打印出每门课的平均成绩,以及三门课总分最高的学生的数据(包括学号、姓名、3门课的成绩,三门课的总分)。

  • 实验八

有50个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入50个学生数据,要求打印出每门课的平均成绩,以及三门课总分最高的学生的数据(包括学号、姓名、3门课的成绩,三门课的总分)。

/**要求打印出每门课的平均成绩,以及三门课总分最高的学生的数据**/
#include<stdio.h>
#include<stdlib.h>

struct stu
{
	char name[11];
	char num[11];
	int gra1, gra2, gra3; 
    int sum1;
};
struct stu p[51];
struct stu t;
int main(void)
{
	int i;
	int n;
	int j;
	double ex1, ex2, ex3;
	printf("Input n\n");
	scanf("%d", &n);
	for(i = 0; i < n; i++)
	{
		p[i].sum1 = 0; 
		scanf("%s %s %d %d %d", p[i].num, p[i].name, &p[i].gra1, &p[i].gra2, &p[i].gra3);
	}
	ex1 = 0;
	ex2 = 0; 
	ex3 = 0;
	
	for(i = 0; i < n; i++)
	{
		ex1 += p[i].gra1;
		ex2 += p[i].gra2;
		ex3 += p[i].gra3;
	}

	ex1 /= n;
	ex2 /= n; 
	ex3 /= n;
    
	for(i = 0; i < n; i++)
	{
        p[i].sum1 += (p[i].gra1 + p[i].gra2 + p[i].gra3);
	}

	for(i = 0; i < n - 1; i++)
	{
		for(j = 0; j < n - 1 - i; j++)
		{
			if(p[j].sum1 < p[j + 1].sum1)
			{
                t = p[j];
				p[j] = p[j + 1];
				p[j + 1] = t;
			}
		}
	}

	for(i = 0; i < n; i++)
	{
		printf("%s %s %d %d %d %d", p[i].num, p[i].name, p[i].gra1, p[i].gra2, p[i].gra3, p[i].sum1);
	}

	return 0;

}

猜你喜欢

转载自blog.csdn.net/Eider1998/article/details/85928516
今日推荐