https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=315609430
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
// =====================
typedef struct {
unsigned int size;
int** mat;
}Matrix;
// =====================
void _init_(Matrix* param); // func (1)
void dataInsert(Matrix* param); // func (2)
void exchangeMat(Matrix* param); // func (3)
void dataPrintf(Matrix* param); // func (4)
// =====================
int main(void) { // Main function
Matrix node;
_init_(&node);
dataInsert(&node);
printf("before \n");
dataPrintf(&node);
exchangeMat(&node);
printf("after \n");
dataPrintf(&node);
return 0;
} // end of main function
// =====================
void _init_(Matrix* param) { // func (1)
unsigned int i, j; // index
param->mat = NULL;
param->size = 0;
scanf("%d", ¶m->size);
param->mat = (int**)malloc(sizeof(int)*param->size);
for (i = 0x0; i < param->size; i++) {
*(param->mat + i) = (int*)malloc(sizeof(int)*param->size);
}
// 배열 초기화
for (i = 0x0; i < param->size; i++) {
for (j = 0x0; j < param->size; j++) {
(param)->mat[i][j] = 0x0;
}
}
} // end of _init_ function
// =====================
void dataInsert(Matrix* param) { // func (2)
srand((unsigned)time(NULL));
unsigned int i, j; // index
for (i = 0x0; i < param->size; i++) {
for (j = 0x0; j < param->size; j++) {
(param)->mat[i][j] = rand() % 30 + 1; // 1, 2, 3, ..., 30
}
}
} // end of dataInsert function
// =====================
void exchangeMat(Matrix* param) { // func (3)
unsigned int i, j; // index
int tmp = 0x0;
unsigned int r = 0;
for (i = 0x0; i < param->size; i++) {
for (j = r; j < param->size; j++) {
if (i != j) {
tmp = (param)->mat[i][j];
(param)->mat[i][j] = (param)->mat[j][i];
(param)->mat[j][i] = tmp;
} // endif
} // endfor
r++;
} // endfor
} // end of exchangeMat function
// =====================
void dataPrintf(Matrix* param) { // func (4)
unsigned int i, j; // index
for (i = 0x0; i < param->size; i++) {
for (j = 0x0; j < param->size; j++) {
printf("%02d", param->mat[i][j]);
if (j != param->size - 1) {
printf(" ");
}
else {
printf("\n");
}
} // endfor
} // endfor
} // end of dataPrintf function
'언어 > c언어' 카테고리의 다른 글
네이버 풀이 (0) | 2019.05.18 |
---|---|
c언어 네이버 풀이 중첩 for문을 사용해서 3을 입력하면 (0) | 2019.05.06 |
네이버 문제 풀이 - 최대공약수 (0) | 2018.11.28 |
네이버 지식이 풀이 (0) | 2018.11.28 |
더블릿 문제 (0) | 2018.11.27 |