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