[C]字符串排序之-冒泡法
阿新 • • 發佈:2017-09-07
stdio.h 順序輸出 pan 傳遞 字符串排序 cmp spa sca 冒泡法
在oj刷題,遇見一題字符串排序題。
腦海裏瞬間閃過數組排序。
思路有了,打開題解看看別人的思路,發現好多人的排序方法顯得比較臃腫,可能也是我的水平不夠,欣賞不來吧。
不過用冒泡法排序的時候一定要記得字符串不可以通過值傳遞的方式來修改!!!
謹記strcpy大法好!!!
附上原題及代碼;
題目:輸入三個字符串,按由小到大的順序輸出
1 #include <stdio.h> 2 #include <string.h> 3 4 int main() 5 { 6 char ar[3][100]; 7 char temp[100]; 8 inti,j; 9 10 for(i=0;i<3;i++) 11 { 12 scanf("%s",ar[i]); 13 } 14 for(i=0;i<2;i++) 15 { 16 for(j=0;j<2-i;j++) 17 { 18 if(strcmp(ar[j],ar[j+1])>0) 19 { 20 strcpy(temp,ar[j]); strcpy(ar[j],ar[j+1]); strcpy(ar[j+1],temp);21 } 22 } 23 } 24 printf("%s\n%s\n%s\n",ar[0],ar[1],ar[2]); 25 26 return 0; 27 }
小知識:
strcmp("A","B"); //返回值為-1 strcmp("A","C") //返回值為-1 (不同系統的返回值不同但符號相同) strcmp("B","A"); //返回值為1; strcmp("A","A"); //返回值為0;
[C]字符串排序之-冒泡法