首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言實例練習

C語言練習實例79:三字符串字典序排序

     編輯:C 語言實例練習

C語言練習實例79:三字符串字典序排序

本實例輸入 3 個字符串,使用冒泡排序思想(兩兩比較交換)按字典序從小到大排序並輸出。

程序分析

  • 使用 strcmp 比較字符串大小。
  • 定義 swap 函數交換兩字符串內容(需臨時數組)。
  • 進行三輪比較交換確保有序:(1,2)、(2,3)、再次(1,2)。

源代碼

// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void swap(char *str1, char *str2);

int main() {
    char str1[20], str2[20], str3[20];

    printf("請輸入3個字符串,每個字符串以回車結束!:\n");
    gets(str1);
    gets(str2);
    gets(str3);

    if (strcmp(str1, str2) > 0) swap(str1, str2);
    if (strcmp(str2, str3) > 0) swap(str2, str3);
    if (strcmp(str1, str2) > 0) swap(str1, str2);

    printf("排序後的結果為:\n");
    printf("%s\n%s\n%s\n", str1, str2, str3);
    return 0;
}

void swap(char *str1, char *str2) {
    char tem[20];
    strcpy(tem, str1);
    strcpy(str1, str2);
    strcpy(str2, tem);
}

運行示例

請輸入3個字符串,每個字符串以回車結束!:
b
a
t
排序後的結果為:
a
b
t

改進

  • 可推廣至 N 個字符串,使用 qsort 或標準排序算法。
  • 避免使用 gets()。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved