#include <IOSTREAM>
#include<string>
#include <cstdlib>
using namespace std;
class DNA{
public:
char seqDNA[51];
int num;
};
void setDnaNum(char strDna[],DNA*d);
int compare(const void*p1,const void*p2){
return ((DNA*)p1)->num-((DNA*)p2)->num;
}
int main(){
DNA*dnas;
int n,m;
char strDNa[200];
cin>>m>>n;
dnas=new DNA[n];
for(int i=0;i<n;i++){
cin>>strDNa;
setDnaNum(strDNa,dnas+i);
strcpy(dnas[i].seqDNA,strDNa);
}
qsort(dnas,n,sizeof(DNA),compare);
for(i=0;i<n;i++)
cout<<dnas[i].seqDNA<<endl;
}
void setDnaNum(char strDna[],DNA*d){
int num=0,len=strlen(strDna);
for(int i=0;i<len-1;i++){
for(int j=i+1;j<len;j++){
if(strDna[i]>strDna[j])
num++;
}
}
d->num=num;
}
其中的setDnaNum函数,其只可以传递结构体指针,而不能传递结构体本身,因为,结构体在函数调用时,其实是复制了一个结构体来进行函数调用的,因此,要使用指针才能改变结构体本山的值。
分享到:
相关推荐
qsort的详细用法,可以用于自学。容易入门,懂
c语言中一种快速的排序方法qsort,qsort的排序方法的具体行事和各种形式的详细举例说明。可以省去很多不必要的比较和循环
经典的acm排序算法,轻松教你学会sort和qsort的使用方法。一个简单,一个比较繁杂,但是运行速度却相对来说较快。希望对大家有帮助,尤其是acm的同学。sort与qsort对结构体多级排序是非常有用的。
qsort的七种用法
详细介绍qsort用法,并且有例子,可以直接使用
C库函数qsort七种使用方法示例, 本人整理的关于qsort函数的使用方法,非常适合C语言初学者学习。
qsort函数常见用法 适合ACM竞赛入门选手使用
对int char char * struct 类型的数组进行排序
qsort函数常见用法
C函数qsort的简介和用法_新手入门.ppt
C函数qsort的简介和用法_新手入门
函数名称: qsort <br>函数原型: void qsort(void *base, size_t nelem, size_t width, int (*fcmp)(const void *,const void *) <br>函数功能: 使用C.A.R.Hoare排序法对数组base进行排序 <br>函数返回: ...
详细解读qsort,,,,绝对有用
C++写的各种QSort,还有效率对比代码..
在c++中qsort()排序函数的使用qsort函数应用大全,在同样的元素和同样的比较条件下,sort()的执行速度都比qsort()要快。另外,sort()是类属函数,可以用于比较任何容器,任何元素,任何条件。
主要介绍了C语言中qsort函数用法,包括了针对各种数据类型参数的排序,非常具有实用价值,需要的朋友可以参考下
C快速排序qsort,对一个数据数组进行快速排序
微软qsort算法,用起来就是比crt快
C语言:巧用qsort,编程省时省力的技巧,难道还不心动吗?
qsort测试,源码,crt,std::sort