字串-簡單字串排序

HowieLee59發表於2019-03-18

Problem Description

從鍵盤輸入10個學生的姓名和成績,請按字典序排列學生的姓名並輸出(姓名和成績對應關係保持不變)。

Input

輸入共11行,前10行每行是一個學生的姓名,最後一行是10個用空格分開的整數表示對應的10個學生成績。(姓名大小不超過20個字元)

Output

輸出姓名按字典序排列後的學生姓名和成績,共10行,每個學生的姓名和成績佔一行,姓名和成績間用逗號分開。

Sample Input

Bush
White
Mark
Jean
Black
Wood
Jenny
Frank
Bill
Smith
78 85 96 65 46 83 77 88 54 98

Sample Output

Bill,54
Black,46
Bush,78
Frank,88
Jean,65
Jenny,77
Mark,96
Smith,98
White,85
Wood,83
#include <stdio.h>
#include <string.h>
int main()
{
    int a[10], c = 0, i, j;
    char b[20][20];
    char s[10];
    while (c < 10)
    {
        scanf("%s", b[c]);
        c++;
    }
    getchar();
    c = 0;
    while(c < 10)
    {
        scanf("%d", &a[c]);
        c++;
    }
    for(i = 0; i < 9; i++)
    {
        for(j = 0; j < 9 - i; j++)
        {
            if(strcmp(b[j],b[j+1]) > 0)
            {
                strcpy(s, b[j]);
                strcpy(b[j],b[j+1]);
                strcpy(b[j+1], s);
                c = a[j];
                a[j] = a[j+1];
                a[j+1] = c;
            }
        }
    }
    for(i = 0; i < 10; i++)
    {
        printf("%s,%d\n", b[i], a[i]);
    }
    return 0;
}

 

相關文章