冒泡排序,顺序插入的问题
定义两个数组score[11],age[11],先存放10个学生成绩,年龄。然后用冒泡排序法将成绩由大到小,年龄由小到大排序。然后按顺序插入一个学生成和年龄。排序没问题,但插入时有问题。这时我前几天在论坛里看到的,但找不到了,现在重新提出一下#include<stdio.h>
void main()
{
int score[11],age[11];
int i,j,x,y,temp;
printf("请输入10个学生的成绩和年龄:\n");
for(i=0;i<10;i++)
{
printf("请输入第%d个学生的成绩和年龄:",i+1);
scanf("%d%d",&score[i],&age[i]);
}
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
{
if(score[i]<score[j])
{
temp=score[i];
score[i]=score[j];
score[j]=temp;
}
if(age[i]>age[j])
{
temp=age[i];
age[i]=age[j];
age[j]=temp;
}
}
}
printf("学生成绩从高到低如下:\n");
for(i=0;i<10;i++)
printf("%4d",score[i]);
printf("\n");
printf("学生年龄从小到大如下:\n");
for(i=0;i<10;i++)
printf("%4d",age[i]);
printf("\n");
printf("请输入要插入的学生成绩和年龄:");
scanf("%d%d",&x,&y);
for(i=0;i<10;i++)
{
if(score[i]<x)
{
for(j=10;j>i;j--)
{
score[j]=score[j-1];
}
break;
}
}
score[i-1]=x;
for(i=0;i<10;i++)
{
if(age[i]>y)
{
for(j=10;j>i;j--)
{
score[j]=score[j-1];
}
break;
}
}
age[i]=y;
printf("\n学生成绩从高到低如下:\n");
for(i=0;i<11;i++)
printf("%4d",score[i]);
printf("\n学生年龄从小到大如下:\n");
for(i=0;i<11;i++)
printf("%4d",age[i]);
printf("\n");
}