排序VS比较简介

来源:互联网 发布:淘宝店铺音乐 编辑:程序博客网 时间:2024/06/05 05:22
#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);}}

0 0