那大家看我编得哪错了呢?谢谢答复
快速排序:通过一趟排序将待排序的记录分割为独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后再分别对这两部分记录继续进行排序,以达到整个序列有序。
#include<stdio.h>
#include<string.h>
int Accept();
void Sort();
void print();
void main()
{
char *str[5];
int b;
b=Accept(str);
Sort(str);
print(str);
}
int Accept()
{
int a,b;
static char name[5];
printf("请输入学生的个数:\n");
scanf("%d",&a);//用于接收学生个数
for(b=0;b<5;b++)
{
printf("请输入第%d个学生的学生编号",b+1);
scanf("%s",&name[a]);//用于接收学生编号
fflush(stdin);
}
return a;
}
void Sort()//用于排序
{
char *name[5];
int n,temp;
for(n=0;n<5;n++)
{
if(strcmp(name[n],name[n+1]>0))
{
temp=*name[n];
*name[n]=*name[n+1];
*name[n+1]=temp;
}
}
}
void print()//用于输出排序结果
{
char *name[5];
int n;
printf("The result is:\n");
for(n=0;n<5;n++)
printf("%s\n",name[n]);
}