中綴 to 字尾 遞迴下降 Parser
阿新 • • 發佈:2020-09-01
輸入3個字串,要求按由小到大的順序輸出
解題思路: 字串的比較可以使用strcmp函式,返回值>0表示大於,返回值小於0表示小於,返回追等於0表示相同。其他的比較排序思路與數字的排序交換沒有區別,逐個進行比較先找出最大的,然後找出第二大的。
答案:
#include <stdio.h> int main() { char str[3][32]; char *p[3]; printf("Please enter three strings:"); for (int i = 0; i < 3; i++) { p[i] = str[i]; scanf_s("%s", p[i], 32);//後邊的數字限制緩衝區邊界,防止緩衝區溢位訪問越界 } //讓p[0]和p[1]/p[2]分別進行比較,找出最大的字串,i+1之後,則讓p[1]和p[2]進行比較,找出第二大 //i迴圈總個數-1次,最後一個是不需要比較的 for (int i = 0; i < 2; i++) { for (int j = i + 1; j < 3; j++) { if (strcmp(p[i], p[j]) > 0) { char *tmp = p[i]; p[i] = p[j]; p[j] = tmp; } } } printf("%s %s %s\n", p[0], p[1], p[2]); system("pause"); return 0; }