#include /******************** サブ関数群のプロトタイプ宣言 *****************/ /* 行列をスキャンする関数. 行列のサイズは値を受け取るのでポインタで指定 */ void scanMatrix(int mat[100][100], int *sizeP); /* 行列をプリントする*/ void printMatrix(int mat[100][100], int size); /* 課題3 : 行列を転置する */ void transpose(int mat[100][100], int size); /*************** メイン関数 **********************************/ int main(){ int n; /* 行列のサイズ */ int A[100][100]; /* 行列 */ int row, col; /* スキャン */ scanMatrix(A, &n); /* 入力を確認 */ printf("\nInput matrix: \n"); printMatrix(A, n); /* 課題 3 : 行列を転置する */ transpose(A, n); printf("\nTransposed matrix: \n"); printMatrix(A, n); return 0; } /******************* 以下はサブ関数群の中身 ***********************/ /* 行列をスキャンする関数. 行列のサイズは値を受け取るのでポインタで指定 */ void scanMatrix(int mat[100][100], int *sizeP){ int i, j; printf("Size ?\n"); /*sizePはポインタなので & は不要. もちろん,&(*sizeP) でもOK. */ scanf("%d", sizeP); for(j=0; j<*sizeP; j++){ printf("Row %d:\n", j); for(i=0; i<*sizeP; i++){ scanf("%d", &(mat[j][i])); } } } /* 行列をプリントする*/ void printMatrix(int mat[100][100], int size){ int i, j; for(j=0; j