#include <stdio.h>
typedef struct _tag_DataElem{
char* desc;
int key1;
int key2;
}DataElem;
int compare1(DataElem* first,DataElem* second)
{
int ret = 0;
if(first->key1 > second->key1){
ret = 1;
}else if(first->key1 == second->key1){
if(first->key2 > second->key2){
ret = 1;
}else if(first->key2 < second->key2){
ret = -1;
}else{
ret = 0;
}
}else{
ret = -1;
}
return ret;
}
int compare2(DataElem* first,DataElem* second)
{
return ((first->key1 * 100 + first->key2) - (second->key1 * 100 + second->key2));
}
int main()
{
DataElem d1 = {"Zhenjun",98,95};
DataElem d2 = {"Yiran",99,99};
int result1 = compare1(&d1,&d2);
int result2 = compare2(&d1,&d2);
printf("By the Compare1:\n");
if(result1 > 0){
printf("%s is better than %s\n",d1.desc,d2.desc);
}else if(result1 < 0){
printf("%s is better than %s\n",d2.desc,d1.desc);
}else{
printf("%s is same as %s\n",d1.desc,d2.desc);
}
printf("By the Compare2:\n");
if(result2 > 0){
printf("%s is better than %s\n",d1.desc,d2.desc);
}else if(result2 < 0){
printf("%s is better than %s\n",d2.desc,d1.desc);
}else{
printf("%s is same as %s\n",d1.desc,d2.desc);
}
}
排序VS比较简介
最新推荐文章于 2023-02-03 16:39:27 发布