본문 바로가기
Programming/C

[C] N x N 행렬 오름차순 정렬

by graygreat 2017. 4. 3.
728x90
반응형


#include<stdio.h> // N x N 행렬 오름차순 함수 int ascending(int num, int arr[][10]) { int i, j, k, l, temp = 0; // i , j 와 k, l를 비교 int InitialValue_k, InitialValue_l; // 초기값 k, l 변수 설정 for (i = 0; i < num; i++) { for (j = 0; j < num; j++) { InitialValue_k = i; InitialValue_l = j + 1; if (j == num - 1 && i < num - 1) // N x N에서 뒤에 N이 마지막 숫자라면 다음 행의 i와 비교 InitialValue_k = i + 1; for (k = InitialValue_k; k < num; k++) { if (k > i) InitialValue_l = 0; // k 가 i 보다 크면 l은 0부터 비교 for (l = InitialValue_l; l < num; l++) { if (arr[i][j] > arr[k][l]) { temp = arr[k][l]; arr[k][l] = arr[i][j]; arr[i][j] = temp; } } } } } } int main() { int i, j; int num; int arr[10][10] = { 0, }; printf("n을 입력하세요(3~10) : "); scanf_s("%d", &num); printf("%d X %d 행렬 입력 : \n", num, num); // N x N 행렬 입력 for (i = 0; i < num; i++) { for (j = 0; j < num; j++) { scanf_s("%d", &arr[i][j]); } } ascending(num, arr); // 오름차순 함수 호출 // N x N 행렬 출력 for (i = 0; i < num; i++) { for (j = 0; j < num; j++) printf("[%d]\t", arr[i][j]); printf("\n"); } }



반응형

댓글