반응형
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define MAX_NA 10
#define MAX_N 20
typedef struct
{
char name[MAX_NA];
int num[MAX_N];
int sum;
}Person;
void sort_name(Person* arr);
void sort_num(Person* arr);
void sort_total(Person* arr);
int main()
{
Person arr[5] = { 0, };
int ch=0;
for (int i = 0; i < 5; i++)
{
printf("학생 %d 정보\n", i+1);
printf("이름: ");
scanf("%s", &arr[i].name);
printf("학번: ");
scanf("%s", &arr[i].num);
printf("총점: ");
scanf("%d", &arr[i].sum);
printf("\n");
}
while (1)
{
printf("1.이름 순(ABC순) 2.학번순(오름차순) 3.총점(내림차순)\n원하는 정렬을 선택하시오.:");
scanf("%d", &ch);
printf("\n");
if (ch == 1)
sort_name(arr);
else if (ch == 2)
sort_num(arr);
else if (ch == 3)
sort_total(arr);
else if (ch == 0)
break;
}
return 0;
}
void sort_name(Person *arr)
{
Person temp;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < i; j++)
{
if (strcmp(arr[i].name, arr[j].name) == -1)
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printf("-------------------------------\n");
printf("이름 학번 총점\n");
printf("-------------------------------\n");
for (int i = 0; i < 5; i++)
{
printf("%s %s %d\n", arr[i].name, arr[i].num, arr[i].sum);
}
printf("\n");
}
void sort_num(Person* arr)
{
Person temp;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < i; j++)
{
if (strcmp(arr[i].num, arr[j].num) == -1)
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printf("-------------------------------\n");
printf("이름 학번 총점\n");
printf("-------------------------------\n");
for (int i = 0; i < 5; i++)
{
printf("%s %s %d\n", arr[i].name, arr[i].num, arr[i].sum);
}
printf("\n");
}
void sort_total(Person* arr)
{
Person temp;
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < i; j++)
{
if (arr[i].sum> arr[j].sum)
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printf("-------------------------------\n");
printf("이름 학번 총점\n");
printf("-------------------------------\n");
for (int i = 0; i < 5; i++)
{
printf("%s %s %d\n", arr[i].name, arr[i].num, arr[i].sum);
}
printf("\n");
}
반응형
'Programming > C' 카테고리의 다른 글
c언어 주민번호 예제 (0) | 2021.08.13 |
---|---|
c언어 숫자맞추기 예제 (0) | 2021.08.13 |
c언어 텍스트 파일 활용예제 (0) | 2021.08.13 |
c언어 배열요소의 합 예제 (0) | 2021.08.13 |
백준 1924,8393,10818,2741,2742,2739 (c언어) (0) | 2021.08.13 |