ポインタをソートする

/*
 * ----------------------------------
 * ポインタをソートする
 * ----------------------------------
 */
#include <stdio.h>
#include <string.h>
#define N 10
void main(void){
    struct girl {
        char *name;
        int age;
    } *t, *p[N], a[]={"Ann", 18, "Rolla", 19, "Nancy", 16, "Eluza", 17,
                      "Juliet", 18, "Machilda", 20, "Emy", 15,
                      "Candy", 16, "Ema", 17, "Mari", 18};
    char *min;
    int s, i, j;

    for(i=0;i<N;i++){
        p[i]=&a[i];
    }

    for(i=0;i<N-1;i++){
        min=p[i]->name;
        s=i;
        for(j=i+1;j<N;j++){
            if(strcmp(p[j]->name,min)<0){
                min=p[j]->name;
                s=j;
            }
        }
        t=p[i]; p[i]=p[s]; p[s]=t;
    }

    for(i=0;i<N;i++){
        printf("%10s%4d¥n",p[i]->name,p[i]->age);
    }
}

この記事が気に入ったらサポートをしてみませんか?