c语言结构体指针函数排序 c语言 结构体 指针

C语言结构体排序问题...

就是排序问题嘛,跟结构体有啥关系?

创新互联是一家专注于成都做网站、成都网站制作、成都外贸网站建设与策划设计,金林网站建设哪家好?创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:金林等地区。金林做网站价格咨询:18980820575

比较结构体中的shu成员啊

冒泡排序的核心代码如下:

struct student ss[20],t;

for(i=0;i20-1;i++)

{

for(j=20-1;ji;j--)

{

if(ss[j].shu ss[j-1].shu)

{

t=ss[j];

ss[j]=ss[j-1];

ss[j-1]=t;

}

}

}

补充:

只需要在交换的时候,按整个结构体换,就行了啊

下面交换代码中的t和ss都是结构体啊

struct student ss[20],t;

t=ss[j];

ss[j]=ss[j-1];

ss[j-1]=t;

求采纳为满意回答。

C语言中结构体数据排序

设结构体名为AAA,结构体数组声明为struct AAA a[N];(N为宏定义常量),身份证成员名为id,则排序函数可如下写——

#include "stdio.h"

#include string.h

#define N 3

struct AAA{

char id[20];

int age;

};

void mysort(struct AAA *p){//排序函数

struct AAA t;

int i,j,k;

for(i=0;iN;i++){

for(k=i,j=k+1;jN;j++)

if(strcmp((p+j)-id,(p+k)-id)0)

k=j;

if(i!=k)

t=*(p+k),*(p+k)=*(p+i),*(p+i)=t;

}

}

int main(int argc,char *argv[]){//测试主函数

struct AAA a[N]={{"650104194812109907",77},{"333018201801015555",1},{"650104194812109903",80}};

mysort(a);

printf("%s\t%d\n",a[0].id,a[0].age);

printf("%s\t%d\n",a[1].id,a[1].age);

printf("%s\t%d\n",a[2].id,a[2].age);

return 0;

}

运行结果:

C语言 结构体排序问题

由于你只是交换字符串,所以修改如下,请检验。

用strcpy(s1,s2)进行复制字符串,不能直接s1=s2。

#includestdio.h

#include time.h

typedef struct

{

char number[10];//书号

char name[50];//书名

char author[20];//作者

char publish[50];//出版社

char time[20];//出版时间

float price;//单价

}mbook;

typedef struct

{

int count;//书的本数

mbook book[10];//最大可有书的数量

}mlibrary;

mlibrary library,t;

main()

{ void sort_by_price(void);

sort_by_price();

}

void sort_by_price(void) /*定义按价格排序函数*/

{

int i,j,k;

char sn[10];

for(i=0;ilibrary.count-1;i++)

{

k=i;

for(j=i+1;jlibrary.count;j++)

if(library.book[j].pricelibrary.book[k].price)

k=j;

if(k!=i)

{

strcpy(sn,library.book[k].number);

strcpy(library.book[k].number,library.book[i].number);

strcpy(library.book[i].number,sn);

}

}

}

用C语言 长度为10的结构体数组 用结构体指针给数组冒泡排序 该怎么写啊、、

c语言引用结构体变量有一条规则,同类结构体可以相互赋值,形式time1=time2

,假如把结构体当做普通变量,也就是说,和以前学到的给整形数组冒泡排序基本没有区别。

#includestdio.h

struct Time

{ int hour;

int minute;

int sec;

};

void main()

{

Time swap;

Time time[2]={1,1,1,2,2,2};

printf("%d:%d:%d\n",time[0].hour,time[0].minute,time[0].sec);

swap=time[0];

time[0]=time[1];

time[1]=swap;

printf("%d:%d:%d\n",time[0].hour,time[0].minute,time[0].sec);

}

OK?普通交换而已


分享标题:c语言结构体指针函数排序 c语言 结构体 指针
浏览地址:http://scjbc.cn/article/dojcjde.html

其他资讯