#include /******************** サブ関数群のプロトタイプ宣言 *****************/ /* 行列をスキャンする関数. 行列のサイズは値を受け取るのでポインタで指定 */ void scanMatrix(int mat[100][100], int *sizeP); /* 行列をプリントする*/ void printMatrix(int mat[100][100], int size); /* 課題2 : 指定した2つの列を交換する */ void swapCol(int mat[100][100], int size, int col1, int col2); /*************** メイン関数 **********************************/ int main(){ int n; /* 行列のサイズ */ int A[100][100]; /* 行列 */ int c1, c2; /* 交換する列の番号 */ /* スキャン */ scanMatrix(A, &n); /* 入力を確認 */ printf("\nInput matrix: \n"); printMatrix(A, n); /* 交換される番号をスキャン */ printf("\nTwo columns?\n"); scanf("%d %d", &c1, &c2); /* 交換する */ swapCol(A, n, c1, c2); printf("\nSwapped %d - %d: \n", c1, c2); 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