C_C++

(C언어) 성적처리: 구조체 정렬

고니자니 2022. 11. 27. 21:35
반응형

#성적처리 #구조체 #정렬 #버블정렬 #struct #bubble #sort #버블소트

 

 

구조체 정렬 예제 (버블 정렬)

#include <stdio.h>

struct student {
    int number;
    char name[20];
    double grade;
};

int main()
{
    struct student temp;
    struct student list[] = {
        { 1, "홍길동", 3.4},
        { 2, "이순신", 3.8},
        { 3, "오만원", 4.4},
        { 4, "이이", 2.5},
        { 5, "허난설현", 3.9} };
    int i, size;

    size = sizeof(list) / sizeof(list[0]);

    // 성적순 정렬 (버블정렬)
    for (int i = size - 1; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            if (list[j].grade < list[j + 1].grade)
            {
                temp = list[j];
                list[j] = list[j + 1];
                list[j + 1] = temp;
            }
        }
    }
    
    // 출력
    for (i = 0; i < size; i++)
    {
        printf("%2d    %-10s   %.1f\n", 
            list[i].number, list[i].name, list[i].grade);
    }
    return 0;
}

(Output)

 

 

 

반응형