#include #include #include #define N_STUDENTS 4 typedef struct student_info { char name[10]; int height; float weight; } student_info; void swap(student_info s[], int i, int j) { student_info tmp; tmp = s[i]; s[i] = s[j]; s[j] = tmp; } void selection_sort_byname(student_info s[], int n) { int i, j, least; for (i = 0; i < n - 1; i++) { least = i; for (j = i + 1; j < n; j++) { if (strcmp(s[j].name, s[least].name) < 0) least = j; } swap(s, i, least); } } int main(void) { int i; student_info *s; s = (student_info *)malloc(sizeof(student_info)*N_STUDENTS); if (s == (student_info *)NULL) { fprintf(stderr, "malloc fail!!!\n"); exit(1); } for(i = 0; i < N_STUDENTS; i++) { printf("À̸§: "); scanf("%s", s[i].name); printf("Å°: "); scanf("%d", &s[i].height); printf("¸ö¹«°Ô: "); scanf("%f", &s[i].weight); } selection_sort_byname(s, N_STUDENTS); for (i = 0; i < N_STUDENTS; i++) { printf("%s %d %f \n", s[i].name, s[i].height, s[i].weight); } free(s); // ¸Þ¸ð¸® ÇÒ´ç ÇØÁ¦ return 0; }