2010-08-27 回答
#include
void main()
{
int Cj[5],Xh[5],i,j,t,m;
printf("\n");
printf("请输入5个学生的平均成绩\n\n");
/*========== 输入==================*/
for(i=0;i<5;i++)
{
printf("学号输入:");
scanf("%d",&Xh[i]);
printf(" 成绩输入:");
scanf("%d",&Cj[i]);
printf("\n");
}
/*=========== 排序=================*/
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(Cj[j]
{
t=Cj[j];
Cj[j]=Cj[j+1];
Cj[j+1]=t;
m=Xh[j];
Xh[j]=Xh[j+1];
Xh[j+1]=m; //你就写错这一句
}
}
}
printf("成绩从高到低排序如下:\n");
printf("学号\t成绩\n");
for(i=0;i<5;i++)
{
printf("%d\t%d\n",Xh[i],Cj[i]);
}
}
追问:
谢谢你啊。
如果要在添加一组数据呢
怎么弄啊
是不是要goto语句啊
追答:
如果学生人数确定,比如你这里的5位学生,就在数组长度里定义。如果学生人数不定,你可以定义一个变量n来表示学生人数,由用户自己输入
追问:
刚开始只有五位。
但是如果在这个基础上在添加呢。
该怎么写?
追答:
数组长度一旦确定,就不能更改,你要在这个基础山添加的话只能再定义各变量来存放新学生的学号成绩等。
追问:
那又如何再进行排序呢
有两组数据啊/?
追答:
什么两组数据?
你现在是五个学生,就是五组数据嘛,每组数据包括学号和成绩。