★★求救→排序问题←★★ 急,在线等!!
[size=5]输入10个学生姓名、年龄、成绩,按分数高低把学生姓名、年龄、成绩按照1 姓名1 年龄1 成绩1
2 姓名2 年龄2 成绩2
的格式输出。我编写的程序代码能通过编译却不能输出,就连输入都有问题请高手帮忙指点。[/size]
代码如下:
#include<stdio.h>
#define N 10
void main()
{
int score[N],age[N],i,j,tempSCORE,tempAGE;
char ch[N],tempch;
for(i=0;i<N;i++)
{
printf("请输入学生姓名: ");
scanf("%c",&ch[i]);
printf("请输入%c年龄 ",ch[i]);
scanf("%d",&age[i]);
printf("请输入%c成绩 ",ch[i]);
scanf("%d",&score[i]);
}
for(j=1;j<N;j++)
for(i=0;i,4-j;i++)
if(score[i]<score[i+1])//将年龄、成绩和姓名分数按照分数的高低排列
{
tempSCORE=score[i];
score[i]=score[i+1];
score[i+1]=tempSCORE;
tempch=ch[i];
ch[i]=ch[i+1];
ch[i+1]=tempch;
tempAGE=age[i];
age[i]=age[i+1];
age[i+1]=tempAGE;
}
printf("按成绩高低排序:\n");
for(i=0;i<N;i++)
{
printf("%d ",i+1);
printf("%c ",ch[i]);
printf("%d ",age[i]);
printf("%d\n",score[i]);
}
}
[[it] 本帖最后由 bianchengfeng 于 2008-4-27 13:08 编辑 [/it]]