第8講 関数(2)
第3話 2次元配列を送る
@2次元配列に対応するポインタを作り、関数f()で2次元データを作成する
A関数g()でその2次元データを表示する
という条件下で実行画面が
1 7 4 0 9 4 8
8 2 4 5 5 1 7
1 1 5 2 7 6 1
4 2 3 2 2 1 6
8 5 7 6 1 8 9
2 7 9 5 4 3 1
となるプログラム例
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使えるようにするために必要
void f(int **x); //データ作成関数
void g(int **x); //データ表示関数
int main() {
int **a = (int **)malloc(sizeof(int *) * 6),i; //配列の宣言
for (i = 0; i < 10; i++)a[i] = (int *)malloc(sizeof(int) * 7);
f(a); //配列の先頭アドレスを渡している
g(a); //配列の先頭アドレスを渡している
}
void f(int **x) {
int i,j;
//配列のデータ作成
for (i = 0; i < 6; i++) {
for (j = 0; j < 7; j++)x[i][j] = rand() % 10;
}
}
void g(int **x) {
int i,j;
//配列のデータ表示
for (i = 0; i < 6; i++) {
for (j = 0; j < 7; j++)cout<< x[i][j] << " ";
cout << endl; //改行
}
cout << endl; //改行
}
ではさらに関数h()、t()、s()にそれぞれ、
左右反転表示、上下反転表示、転置表示の役割を持たせて、
実行画面
行列
1 7 4 0 9 4 8
8 2 4 5 5 1 7
1 1 5 2 7 6 1
4 2 3 2 2 1 6
8 5 7 6 1 8 9
2 7 9 5 4 3 1
左右反転行列
8 4 9 0 4 7 1
7 1 5 5 4 2 8
1 6 7 2 5 1 1
6 1 2 2 3 2 4
9 8 1 6 7 5 8
1 3 4 5 9 7 2
上下反転行列
2 7 9 5 4 3 1
8 5 7 6 1 8 9
4 2 3 2 2 1 6
1 1 5 2 7 6 1
8 2 4 5 5 1 7
1 7 4 0 9 4 8
転置行列
1 8 1 4 8 2
7 2 1 2 5 7
4 4 5 3 7 9
0 5 2 2 6 5
9 5 7 2 1 4
4 1 6 1 8 3
8 7 1 6 9 1
を実現して下さい。