僅供參考:
#include?"stdio.h"#define?N?35
struct?student
{
int?num; //學號
char?name[8]; //姓名
int?nannv; //性別
int?chines; //語文成績
int?math; //數學成績
int?English; //英語成績
int?physics; //物理成績
int?sum; //總分
double?avr; //平均分
}stu[N];
void?input(int?n)
{
int?i;
for(i=0;i<n;i++)
{
int?sum=0;
double?avr=0.0;
printf("請輸入第%d個學生信息\n",i+1);
printf("請輸入學號:");
scanf("%d",&stu[i].num);
printf("請輸入姓名:");
scanf("%s",stu[i].name);
printf("請輸入性別:");
scanf("%d",&stu[i].nannv);
printf("請輸入語文成績:");
scanf("%d",&stu[i].chines);
printf("請輸入數學成績:");
scanf("%d",&stu[i].math);
printf("請輸入英語成績:");
scanf("%d",&stu[i].English);
printf("請輸入物理成績:");
scanf("%d",&stu[i].physics);
//計算總分和平均分
stu[i].sum?=?stu[i].chines+stu[i].math+stu[i].English+stu[i].physics;
stu[i].avr?=?(double)(stu[i].sum*1.0/4);
}
}
void?output(int?n)
{
int?i;
for(i=0;i<n;i++)
{
printf("------------------------------------------------------------------\n");
printf("第%d名:\n",i+1);
printf("學號:%d\t\t姓名:%s\t\t性別:%d\n",stu[i].num,stu[i].name,stu[i].nannv);
printf("語文成績:%d\t數學成績:%d\t英語成績:%d\t物理成績:%d\n",
stu[i].chines,stu[i].math,stu[i].English,stu[i].physics);
printf("總分:%d\t\t\t平均分:%.2f\n",stu[i].sum,stu[i].avr);
printf("------------------------------------------------------------------\n");
}
}
void?sort(int?n)
{
int?i,j;
struct?student?st;
//冒泡排序
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(stu[j].sum<stu[j+1].sum)
{
st?=?stu[j];
stu[j]?=?stu[j+1];
stu[j+1]?=?st;
}
}
}
}
void?main()
{
int?n;
printf("請輸入學生人數:");
scanf("%d",&n);
input(n); //輸入學生信息
sort(n); //按總成績排序
printf("排名信息如下:\n");
output(n); //輸出學生信息
}