C语言输入10个学生的姓名和学号 按照学号从小到大顺序排序 姓名随之调整

#include<stdio.h>
void sort(int *a, char *b)//a为数组地址
{
int i, j;
int v,s;
for(i = 0; i < 10; i ++)
for(j = i+1; j<10; j ++)
{
if(a[i] > a[j])
{
v = a[i];
a[i] = a[j];
a[j] = v;
s = b[i];
b[i] = b[j];
b[j] = s;
}
}
}
main()
{
int *a[10],i;
char *b[10];
for(i=0;i<=9;i++)
{ scanf("%d",&a[i]);
scanf("%c",&b[i]);
}
sort(a[10],b[10]);
for(i=0;i<=9;i++)
{
printf("%d\n%c",&a[i],&b[i]);
}

}

程序能够运行 但是输入两次之后就崩溃退出了 请问什么原因?如何修改?

#include<stdio.h>
#include<string.h>
void sort(int a[], char b[][11])//a为数组地址
{
int i, j,v;
char s[11];
for(i = 0; i < 9; i ++)
for(j = i+1; j<10; j ++)
{
if(a[i] > a[j])
{
v = a[i];
a[i] = a[j];
a[j] = v;
strcpy(s,b[i]);
strcpy(b[i],b[j]);
strcpy(b[j],s);
}
}
}
main()
{
int a[10],i;
char b[10][11];
for(i=0;i<=9;i++)
{ scanf("%d",&a[i]);
scanf("%s",b[i]);
}
sort(a,b);
for(i=0;i<=9;i++)

printf("%d %s\n",a[i],b[i]);
}

}

温馨提示:答案为网友推荐,仅供参考
相似回答