[ create a new paste ] login | about

Link: http://codepad.org/5dG41knN    [ raw code | output | fork ]

C, pasted on Jul 5:
#include <stdio.h>

// 二つの文字列を、先頭から順に、異なる文字か
// 文字列終端になるまで文字コートを比較する。
int compare(char *m1, char *m2)
{
    int i = 0;
    while (*(m1 + i) && *(m2 + i)) {
        if (*(m1 + i) > *(m2 + i))
            return 1;
        if (*(m1 + i) < *(m2 + i))
            return -1;
        i++;
    }
    return *(m1 + i) > *(m2 + i);
}

int main()
{
    char *month[] = {
        "January", "February", "March", "April", "May", "June",
        "July", "August", "September", "October", "November", "December"
    };
    int i, j;
    printf("整列前  ");
    for (i = 0; i < 12; i++)
        printf("%s ", month[i]);
    printf("\n");

    for (i = 0; i < 11; i++) {
        for (j = i; j < 12; j++) {
            // 文字列を比較し、左が大きかったら、入れ替える
            if (compare(month[i], month[j]) > 0) {
                char *tmp = month[i];
                month[i] = month[j];
                month[j] = tmp;
            }
        }
    }
    printf("整列後 ");
    for (i = 0; i < 12; i++)
        printf("%s ", month[i]);
    printf("\n");
    return 0;
}


Output:
1
2
整列前  January February March April May June July August September October November December 
整列後 April August December February January July June March May November October September 


Create a new paste based on this one


Comments: