배열 문제

최주영·2023년 1월 6일
0

C언어

목록 보기
15/15

✅ 문제 (1)

  • 문제 : 배열 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");
}
  • 출력결과

✅ 문제 (2)

  • 문제 : 배열 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;
 }
}
  • 출력결과

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글