반응형
(scanf 가 에러 발생시 아래 참고)
https://ansan-survivor.tistory.com/899
메모리에 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)
반응형
'C언어 \ C++' 카테고리의 다른 글
[C언어] c언어 atoi함수, atof 함수 예제 (아스키코드 정수형 실수형 변환) (0) | 2021.09.26 |
---|---|
[C언어] C언어를 통한 메모리 구조 이해, c언어 동작 순서 이해 (0) | 2021.09.24 |
[C언어] 홀수 짝수 구분하여 sort시키기 예제 (랜덤수 생성, 비트연산) (0) | 2021.09.20 |
[C언어] 랜덤으로 생성한 8자리 수를 내림차순 정렬하기 예제 (0) | 2021.09.20 |
[C언어] 비트연산자를 이용한 10진수를 2진수로 변환, decimal to binary (0) | 2021.09.19 |