/**************************
버블소트를 이용한 숫자 정렬
***************************/
#include<stdio.h>
#include<malloc.h>
void print_menu()
{
printf("1.. 성적 입력\n");
printf("2.. 성적 출력\n");
printf("3.. 성적 정렬\n");
printf("4.. 평균 계산\n");
}
void MakeArray(int **pgrade , int grade_count)
{
*pgrade = (int*)malloc(sizeof(int)*grade_count);
}
void insert_grade(int * grade ,int grade_count)
{
for(int i=0 ; i<grade_count ; i++)
{
printf("%d번 :",i+1);
scanf("%d",&grade[i]);fflush(stdin);
}
}
void print_grade(int * grade ,int grade_count)
{
for(int i=0 ; i<grade_count ; i++)
{
printf("%d\t" , grade[i]);
}
putchar('\n');
}
void bubble_sort_grade(int * grade ,int grade_count)
{
// i는 정렬된 데이터의 갯수
for(int i=0 ; i<grade_count ; i++)
for(int j=grade_count-1 ; j>i ; j--)
if(grade[j-1]>grade[j])
{
int temp = grade[j-1];
grade[j-1] = grade[j];
grade[j] = temp;
}
}
void main()
{
int i_Choice;
int *grade;
int grade_count;
printf("총 몇명의 성적 관리?");
scanf("%d",&grade_count);fflush(stdin);
MakeArray(&grade , grade_count);
while(i_Choice)
{
print_menu();
scanf("%d",&i_Choice);fflush(stdin);
switch(i_Choice)
{
case 1:
insert_grade(grade , grade_count);
break;
case 2:
print_grade(grade , grade_count);
break;
case 3:
bubble_sort_grade(grade , grade_count);
break;
}
}
}