#include<stdio.h>
char xuehang[5][5] , name[5][20],t1[1][20],t2[1][20];
int chengji[5][4], jun[5], cheng[5],t ,t3;
void main()
{
printf("请依次输入姓名,学号,分数");
for(int i = 0; i < 5 ; i++)
{
scanf("%s%s%d", &name[i] ,&xuehang[i] ,&chengji[i]);
}
for(int i = 0; i < 5 ; i++)
{
t = 0;
for(int j = 0; i < 4; j++)
{
t = t +chengji[i][j];
}
cheng[i] = t;
}
for(int i = 0; i < 5 ; i++)
{
jun[i] = cheng[i]/4;
}
for(int i = 0; i < 4 ; i++)
{
for(int j = 0; i < 5 ; j++)
{
if(cheng[i] < cheng[j])
{
t = cheng[i];
cheng[i] =cheng[j];
cheng[j] = t;//)
t1[1] = name[i];
name[i]=name[j];
name[j] = t1[1];//)
t2[1] = xuehang[i];
xuehang[i]=xuehang[j];
xuehang[j] = t2[1];//)
t3 = jun[i];
jun[i]=jun[j];
jun[j] = t3;//)
}
}
}
for(int i = 0; i < 5 ; i++)
{
printf("%s %s %d %d" ,name[i],xuehang[i],jun[i],cheng[i]);
}
}
//这是一个输入姓名 学号 四门课的成绩,求均值,总分 ,并以成绩的高低输出姓名 学号 总分 均值的程序;
代码如下,运行通过,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
#include <algorithm>
using namespace std;
char xuehang[5][5], name[5][20],t1[1][20],t2[1][20];
int chengji[5][4], jun[5], cheng[5],t ,t3;
void main()
{
printf("请依次输入姓名,学号,分数\n");
for(int i = 0; i < 5 ; i++)
{
scanf("%s %s %d %d %d %d", &name[i] ,&xuehang[i] ,&chengji[i][0],&chengji[i][1],&chengji[i][2],&chengji[i][3]);
}
//计算均值
for (int i = 0 ; i < 5; i++)
{
int sum = 0;
for (int j = 0; j < 4;j++)
{
sum += chengji[i][j];
}
cheng[i] = sum; //所有成绩的和
jun[i] = sum /4; //平均成绩
}
int index1[5] = {0};
int index2[5] = {0};
for (int i = 0; i < 5; i++)
{
index1[i] = i;
index2[i] = i;
}
//以总成绩排序输出
sort(index1,index1+5,[&](const int& a, const int& b) {
return (cheng[a] > cheng[b]);
});
printf("按总成绩从高到底排序:学号,姓名,总成绩:\n");
for (int i = 0; i < 5; i++)
{
int ss = index1[i];
printf("%s,%s,%d\n",xuehang[ss],name[ss],cheng[ss]);
}
//按平均分排序输出
sort(index2,index2+5,[&](const int& a, const int& b) {
return (jun[a] > jun[b]);
});
printf("按平均成绩从高到底排序:学号,姓名,总成绩:\n");
for (int i = 0; i < 5; i++)
{
int ss = index2[i];
printf("%s,%s,%d\n",xuehang[ss],name[ss],jun[ss]);
}
getchar();
return ;
}