#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int start_num = 0;//메뉴선택
int std_date_num = 0;//입력한 학생 수 저장

struct date        {//학생 정보가 들어있는 구조체
        int num;//학번
        char name[256];//이름
        int score;//시험점수
}        std_date[50];//구조체를 배열로 50개 선언

void menu();//메뉴함수 프로토타입선언
void std_date_w();//학생정보입력함수 프로토타입선언
void std_ranking();//학생등수결정함수 프로토타입선언
void std_ranking_r();//학생등수출력함수 프로토타입선언

void main()
{
        do        {
                menu();

                switch(start_num)
                {
                case 1:
                        std_date_w();
                        break;
                case 2:        
                        std_ranking();
                        std_ranking_r();
                        break;
                case 0:
                        printf("프로그램을 종료합니다.n");
                        break;
                default        :
                        printf("잘못 입력하셨습니다.n");
                        break;        
                }
        }        while(start_num != 0);
}

void menu()//메뉴
{
        printf("┏━━━━━━━━━┓n");
        printf("┃등수저장 프로그램 ┃n");
        printf("┃1.학생 데이터 입력┃n");
        printf("┃2.학생 순위 출력  ┃n");
        printf("┃0.종료            ┃n");
        printf("┗━━━━━━━━━┛n");
        scanf("%d", &start_num);
}

void std_date_w()//학생정보입력
{
        int exit = 0;

        do        {
                printf("학생 데이터 입력입니다.n");
                printf("학생의 학번을 입력해주세요.n");
                printf("▷▶");
                scanf("%d", &std_date[std_date_num].num);

                printf("학생의 이름을 입력해주세요.n");
                printf("▷▶");
                fflush(stdin);
                gets(std_date[std_date_num].name);

                printf("학생의 점수를 입력해주세요.n");
                printf("▷▶");
                scanf("%d", &std_date[std_date_num].score);

                std_date_num ++;

                printf("종료하시려면 0번을, 계속 입력하시려면 다른 숫자키를 눌러주세요.n");
                printf("▷▶");
                scanf("%d", &exit);
        }        while(exit != 0);
}

void std_ranking()
{
        for(int i = 0;i <= std_date_num-1;i++)
        {
                for(int j = 0;j <= std_date_num-1;j++)
                {
                        if(std_date[j].score <= std_date[j+1].score)
                        {
                                std_date[50] = std_date[j];
                                std_date[j] = std_date[j+1];
                                std_date[j+1] = std_date[50];
                        }
                }
        }
}

void std_ranking_r()//학생등수출력
{

        for(int i = 0;i <= std_date_num-1;i++)
        {
                printf("***%d등***n", i+1);
                printf("학번 : %dn", std_date[i].num);
                printf("이름 : %sn", std_date[i].name);
                printf("점수 : %dn", std_date[i].score);
        }
}

------------------------------------
학생 점수를 입력해서 순위를 정하는 건데요

따로따로하면 전부 되는데
스위치문에 넣고하면 이상하게 순위를 정해서 출력하는 부분이 씹혀버려요;;
왜이럴까요?[...]

황당한건 예~~전에 이거랑 똑같이 만든건 됐는데 이번껀 안된다는 사실[....]

....복습이고 나발이고 다때려치울까emoticon_00emoticon_20