#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#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;
}