怎么用快速排序法比较结构体数组中成员中字符串的大小?比如有一个结构体数组,里面有 char s[1

2024-12-16 01:48:04
推荐回答(1个)
回答1:

#include 
#include 
struct A{
char s[10];
int no;
};
int main(){
struct A a[5]={"asd",1,"qwe",2,"zxc",3,"rty",4,"vbn",5};
struct A *p[5]={&a[0],&a[1],&a[2],&a[3],&a[4]},*t;
for(int i=1;i<5;i++){
    t=p[i];
for(int j=i-1;j>=0;j--)
if(strcmp(t->s,p[j]->s)<0){
p[j+1]=p[j];
p[j]=t;
}
}
for(i=0;i<5;i++)
printf("%d ",p[i]->no);
printf("\n");
}

这个程序只是用结构体A做了个排序的例子,至于你要结构体中有我不知道,你自己加吧。

我就加了个no,让你看看结果而已。