c语言中如何将按结构体中的某个元素大小,将结构体排序输出

有struct protcol
{
char prot[16]; //协议名称
int num; //协议发生次数
}
protcol A,B;
A.prot = "FTP";A.num = 3;
B.prot = "P2P";B.num = 9;
现将A,B按协议的发生次数num排序并输出,就是输出的时候,要是B协议名字在前面,A在后面,用C语言如何实现?(纯C,没有容器)

第1个回答  2012-02-20
做一个结构数组就可以了,这也算是一种容器了吧?
struct protcol
{
char prot[16]; //协议名称
int num; //协议发生次数
};

protcol p[10];
p[0].prot = "FTP";p[0].num = 3;
//...
然后就是用num排序,就和普通int数组排序一样
然后再顺序输出本回答被提问者采纳
第2个回答  2012-02-20
num 能唯一确定吧?就对A.num,B.num 进行排序阿,排完了根据num的值输出就行了吧
第3个回答  2012-02-24
struct protcol
{
char prot[16]; //协议名称
int num; //协议发生次数
}
protcol A,B;
A.prot = "FTP";A.num = 3;
B.prot = "P2P";B.num = 9;
现将A,B按协议的发生次数num排序并输出,就是输出的时候,要是B协议名字在前面
第4个回答  2012-02-20
将结构体A,B.....按照num 排序不就行了。
相似回答