第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<stdio.h>
#include<stdlib.h> //rand()が使えるようにインクルード
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++)printf("%d ",x[i][j]);
    printf("\n");
  }
  printf("\n"); //改行
}

ではさらに関数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

を実現して下さい。


第2話へ   第4話へ

002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ