반응형

(scanf 가 에러 발생시 아래 참고)

https://ansan-survivor.tistory.com/899

 

[Visual Studio 2019] 비주얼 스튜디오 2019 scanf_s 오류, scanf 사용하기 변경

예전에는 scanf 를 상용함에 있어 문제가 없었는데, 비쥬얼스튜디오가 계속업그레이드가 되면서 scanf_s를 사용하지 않으면 오류를 일으킨다. 따라서 이 에러를 해제 시키고 예전처럼 scanf를 사용

ansan-survivor.tistory.com

 

메모리에 100 by 100 선언 후, 유저의 입력을 받아 행렬의 크기를 정한 후 행렬 내 랜덤 값 부여

각 행렬의 값은 10자리수까지 랜덤 부여

각 행의 수를 오름차순 정렬

각 열의 수를 오름차순 정렬

 

결과적으로 1 by 1 부터 max by max 까지 오름차순 정렬

 

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


void get_ran_num(char arr[][100], int N)
{
	int i = 0, j = 0;

	printf("===난수로 배열 채운 결과===\n");
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			arr[i][j] = rand() % 100;
			printf("%3d ", arr[i][j]);
		}

		printf("\n");
	}
}

// 행을 순차적으로 정렬 시킴
void sort_row(char arr[][100], int N)
{
	int i = 0, j = 0, k = 0, temp = 0;

	for (i = 0; i < N; i++)
	{
		for (k = 1; k < N; k++)
		{
			for (j; j < N - k; j++)
			{
				if (arr[i][j] > arr[i][j + 1])
				{
					temp = arr[i][j + 1];
					arr[i][j + 1] = arr[i][j];
					arr[i][j] = temp;
				}
			}
			j = 0;
		}
		k = 0;
	}

	printf("===== 행 정렬 결과 =====\n");
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			printf("%3d ", arr[i][j]);
		}
		printf("\n");
	}


}


// 열을 순차적으로 정렬시킴
void sort_column(char arr[][100], int N)
{
	int i = 0, j = 0, k = 0, temp = 0;

	for (i = 0; i < N; i++)
	{
		for (k = 1; k < N; k++)
		{
			for (j; j < N - k; j++)
			{
				if (arr[j][i] > arr[j + 1][i])
				{
					temp = arr[j + 1][i];
					arr[j + 1][i] = arr[j][i];
					arr[j][i] = temp;
				}
			}
			j = 0;
		}
		k = 0;
	}

	printf("===== 열 정렬 결과 =====\n");
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N; j++)
		{
			printf("%3d ", arr[i][j]);
		}
		printf("\n");
	}

}


int main(void)
{
	// 메모리에 100 by 100 에 기본값 0부여
	char arr[100][100] = { 0 };
	int N = 0;

	srand((unsigned)time(NULL));

	printf("배열의 크기를 입력하세요 : ");
	scanf("%d", &N);

	get_ran_num(arr, N);
	sort_row(arr, N);
	sort_column(arr, N);

	return 0;
}

 

반응형

 

(결과1)

 

(결과2)

 

 

 

 

반응형

+ Recent posts