1. 程式人生 > >要求打印出每門課的平均成績,以及三門課總分最高的學生的資料(包括學號、姓名、3門課的成績,三門課的總分)。

要求打印出每門課的平均成績,以及三門課總分最高的學生的資料(包括學號、姓名、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;

}