求c程序题目答案~!高手进来!!!

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:14:17
已知某班N(〈=50)名学生进行了高数、英语和C语言等3门课考试,将3门课的成绩以及计算3门课的总分存放于一个二维数组中,将学生姓名存放在另一个二维字符数组中,按总分(由高到低)将学生姓名排序并输出排序结果(序号和姓名)。

#include<stdio.h>

void main()
{
struct student
{
char name[20];
int mat, eng, c_lang, t;
}stu[50];

int n, i, j, tmp;
char tmp_name[20];
printf("Please Input Number of Sdudents: ");
scanf("%d", &n);
i=0;
printf("Name Math English C_Language\n");
for(i=0; i<n; i++)
{
scanf("%s %d %d %d", stu[i].name, &stu[i].mat, &stu[i].eng, &stu[i].c_lang);
stu[i].t=stu[i].mat+stu[i].eng+stu[i].c_lang;

}

for (i=0; i<n-1; i++)
{
for (j=i+1; j<n; j++)
{
if (stu[i].t<stu[j].t)
{
tmp=stu[i].t;
stu[i].t=stu[j].t;
stu[j].t=tmp;

tmp=stu[i].mat;