第14講 配列を引数にして、配列を社員(関数)に送る

第5話 4次魔方陣を配列を送ることによって実現するその2
4次魔方陣その2です。

10 11 12
13 14 15 16

   ↓

15 14
12
10 11
13 16

を実現するプログラム例
#include<stdio.h>
void f(int x[3][3]); //自然配列を作成する社員
void g(int x[3][3]); //データを表示する社員
void h(int x[3][3]); //自然配列の対角線のデータを交換して4次魔方陣を作成する社員
int main(){
  int i;
  int x[3][3];
  f(x);
  g(x);
  h(x);
  printf("\n");
  g(x);
}
void f(int x[3][3]){
  int i,j;
  for(i=0;i<4;i++){
    for(j=0;j<4;j++){
      x[i][j]=4*i+j+1;
    }
  }
}
void g(int x[3][3]){
  int i,j;
  for(i=0;i<4;i++){
    for(j=0;j<4;j++){
      if(x[i][j]<10)printf("0%d ",x[i][j]);
      if(x[i][j]>=10)printf("%d ",x[i][j]);
    }
    printf("\n");
  }
}
void h(int x[3][3]){
  int w,i;
  for(i=0;i<2;i++){
    w=x[0][i+1];
    x[0][i+1]=x[3][2-i];
    x[3][2-i]=w;
  }
  for(i=0;i<2;i++){
    w=x[i+1][0];
    x[i+1][0]=x[2-i][3];
    x[2-i][3]=w;
  }
}
2次元配列を渡す魔方陣作成その2

さて、次は
6次魔方陣の実行画面
01 02 03 04 05 06
07 08 09 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36

36 32 04 03 05 31
12 29 27 10 26 07
19 17 22 21 14 18
13 20 16 15 23 24
25 11 09 28 08 30
06 02 33 34 35 01

の実現です。


第4話へ 第6話へ

a


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

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ