第13講 ベクタを利用して4次魔方陣を作ろう!
第4話 自然配列の作成と表示

実行結果
e
導くプログラミング例
#include<iostream>
#include<vector>
using namespace std;
void f(vector<vector<int>>::iterator m);
void h(vector<vector<int>>::iterator m);
void main(){
   vector<vector<int>> m(4);
   for(int i=0;i<4;i++)m[i].resize(4);
   cout<<"自然配列"<<endl;
   f(m.begin()); //自然配列作成
   h(m.begin()); //自然配列表示
   cout<<endl;
   cout<<"プロジェクト終了";
}

void f(vector<vector<int>>::iterator m){
   for(int i=0;i<4;i++){
     for(int j=0;j<4;j++){
        m[i][j]=4*i+j+1;
     }
   }
}

void h(vector<vector<int>>::iterator m){
   int i,j,w;
   w=0;
   for(i=0;i<4;i++){
     w=w+m[3-i][i];
   }
   cout<<" "<<w<<endl;
   for(i=0;i<4;i++){
     for(j=0;j<4;j++){
        if(m[i][j]<10)cout<<"0"<<m[i][j]<<" "; else cout<<m[i][j]<<" ";
     }
     cout<<" ";
     w=0;
     for(j=0;j<4;j++)w=w+m[i][j];
     cout<<w<<endl;
   }
   w=0;
   for(i=0;i<4;i++){
     w=w+m[i][i];
   }
   cout<<" "<<w<<endl;
   for(i=0;i<4;i++){
     w=0;
     for(j=0;j<4;j++){
        w=w+m[j][i];
     }
     cout<<w<<" ";
   }
   cout<<endl;
}

では、次ぎにデータ交換関数gを加えて、
e
データ表示関数hはそのままで、
再度使用します。
交換する組み合わせは、
(01,16),(02,15),(04,13),(07,10)
です。
本来は、for文で関数gの内容を組みたいところですが、
結構、難解ですから、
はじめはfor文を使わずに組んでみましょう。

第3話へ 第5話へ



a

eclipse c++ 入門講義第1部へ

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