문제 : 배열 N[10] 에 1~99 사이의 임의의 수를 저장하고,크기 순서대로 정렬하여 출력하는 프로그램
소스코드
#include <stdio.h>
#include <stdlib.h> // rand()함수를 사용하기위해서 헤더파일 사용
#include <time.h> // srand의 seed값을 매번 다르게 하기위해서 헤더파일 사용
int i, j, k, n, temp;
void ASC(int NUM[]) // 오름차순 함수
{
for (j = 0; j < 10; j++)
{
for (k = 0; k < 9; k++)
{
if (NUM[k] > NUM[k + 1])
{
temp = NUM[k];
NUM[k] = NUM[k + 1];
NUM[k + 1] = temp;
}
}
}
printf("오름차순 정렬결과 : ");
for (j = 0; j < 10; j++)
{
printf("%d ", NUM[j]);
}
printf("\n");
}
void DESC(int NUM[]) // 내림차순 함수
{
for (j = 0; j < 10; j++)
{
for (k = 0; k < 9; k++)
{
if (NUM[k] < NUM[k + 1])
{
temp = NUM[k];
NUM[k] = NUM[k + 1];
NUM[k + 1] = temp;
}
}
}
printf("내림차순 정렬결과 : ");
for (j = 0; j < 10; j++)
{
printf("%d ", NUM[j]);
}
printf("\n");
}
int main()
{
int N[10], n;
srand(time(0));
printf("===========================\n");
printf("문제 : 배열 N[10] 에 1~99 사이의 임의의 수를 저장하고,크기 순서대로 정렬하여 출력하는 프로그램\n");
printf("===========================\n");
printf("랜덤생성된 정렬되지 않은 수 : ");
for (i = 0; i < 10; i++)
{
N[i] = (rand() % 99) + 1;
printf("%d ", N[i]);
}
printf("\n");
printf("===========================\n");
printf("위 수를 기준으로 정렬할 원하는 모드를 입력 [1.오름차순] [2.내림차순] [그 외 숫자 : 정렬 안하고 종료] : ");
scanf_s("%d", &n);
printf("===========================\n");
if (n == 1)
ASC(N);
else if (n == 2)
DESC(N);
else
printf("1번 2번 외 입력시 프로그램을 종료합니다.\n");
printf("===========================\n");
printf("작성자 : 2017E7043 최주영\n");
printf("===========================\n");
}
문제 : 배열 M[10][20] 에 좋아하는 음식이름(한글) 10가지를 저장하고, 이름 순서대로 정렬하는 과정을 출력하는 프로그램
소스코드
#include <stdio.h>
#include <string.h>
#define Max_Count 10 // 배열에 넣을 최대 음식이름의 개수
#define Max_Length 20 // 배열에 넣을 최대 음식이름의 길이
char temp[Max_Length]; // 자리를 바꿔주기 위한 임시 배열
int i, j;
void ASC(char MM[][Max_Length]) // 오름차순 함수
{
for (j = 0; j < Max_Count - 1; j++)
{
for (i = 0; i < Max_Count - 1 - j; i++)
{
if (strcmp(MM[i], MM[i + 1]) > 0)
{
strcpy_s(temp, Max_Length, MM[i]);
strcpy_s(MM[i], Max_Length, MM[i + 1]);
strcpy_s(MM[i + 1], Max_Length, temp);
}
}
}
printf("================================================\n");
printf("오름차순 정렬 후 : ");
for (i = 0; i < Max_Count; i++)
{
printf("%s ", MM[i]);
}
printf("\n");
printf("================================================\n");
}
void DESC(char MMM[][Max_Length]) // 내림차순 함수
{
for (j = 0; j < Max_Count - 1; j++)
{
for (i = 0; i < Max_Count - 1 - j; i++)
{
if (strcmp(MMM[i], MMM[i + 1]) < 0)
{
strcpy_s(temp, Max_Length, MMM[i]);
strcpy_s(MMM[i], Max_Length, MMM[i + 1]);
strcpy_s(MMM[i + 1], Max_Length, temp);
}
}
}
printf("================================================\n");
printf("내림차순 정렬 후 : ");
for (i = 0; i < Max_Count; i++)
{
printf("%s ", MMM[i]);
}
printf("\n");
printf("================================================\n");
}
int main()
{
printf("================================================\n");
printf("문제 : 배열 M[10][20] 에 좋아하는 음식이름(한글) 10가지를 저장하고, 이름 순서대로 정렬하는 과정을 출력하는 프로그램\n");
char M[Max_Count][Max_Length] = {"초밥","김치","당근","바나나","달걀","오징어","새우","버섯","만두","회" };
int mode_input;
printf("================================================\n");
printf("정렬 전 : ");
for (i = 0; i < 10; i++)
{
printf("%s ", M[i]);
}
printf("\n");
printf("================================================\n");
while (1)
{
printf("위의 음식들을 기준으로 정렬할 원하는 모드를 입력하시오 [1.오름차순] [2.내림차순] [그 외 숫자 : 정렬 안하고 종료] : ");
scanf_s("%d", &mode_input);
if (mode_input == 1)
ASC(M);
else if (mode_input == 2)
DESC(M);
else
break;
}
printf("================================================\n");
printf("작성자 : 2017E7043 최주영\n");
printf("================================================\n");
return 0;
}
}