第15講 フリーストア配列

第3話 2次元フリーストア配列を関数に送るその1
第2話問題解答例
#include<iostream>
using namespace std;
void f(int** a);
void g(int** a);
void main(){
   int** a=new int*[10];
   for(int i=0;i<10;i++)a[i]=new int[12];
   f(a);
   g(a);
   cout<<endl;
   cout<<"プロジェクト終了"<<endl;
   delete[] a;
}
void f(int** a){
   int i,j;
   for(i=0;i<10;i++){
     for(j=0;j<12;j++){
        a[i][j]=12*i+j+1;
     }
   }
}
void g(int** a){
   int i,j;
   for(i=0;i<10;i++){
     for(j=0;j<12;j++){
        if(a[i][j]<10)cout<<"00"<<a[i][j]<<" ";
        if(a[i][j]>=10 && a[i][j]<100)cout<<"0"<<a[i][j]<<" ";
        if(a[i][j]>=100)cout<<a[i][j]<<" ";
     }
     cout<<endl;
   }
}

ダウンロード用添付ファイル
今回は関数fをvoid型にしましたが、int**型にしてa=f(a);にするとどうなるでしょうか。
例によって解答例を20行下に示します。
















#include<iostream>
using namespace std;
int** f(int** a);
void g(int** a);
void main(){
   int** a=new int*[10];
   for(int i=0;i<10;i++)a[i]=new int[12];
   f(a);
   g(a);
   cout<<endl;
   cout<<"プロジェクト終了"<<endl;
   delete[] a;
}
int** f(int** a){
   int i,j;
   for(i=0;i<10;i++){
     for(j=0;j<12;j++){
        a[i][j]=12*i+j+1;
     }
   }
   return(a);
}
void g(int** a){
   int i,j;
   for(i=0;i<10;i++){
     for(j=0;j<12;j++){
        if(a[i][j]<10)cout<<"00"<<a[i][j]<<" ";
        if(a[i][j]>=10 && a[i][j]<100)cout<<"0"<<a[i][j]<<" ";
        if(a[i][j]>=100)cout<<a[i][j]<<" ";
     }
     cout<<endl;
   }
}


では、次話の課題です。
2次元フリーストア配列bを用意し、そこに2次元配列aの各要素を2倍したものを代入させ、
p
のように表示させるプログラムを考えてください。
ただし、以下の条件を守るものとします。
① 代入は専用の関数を用意してそこで行う。
② 2次元フリーストア配列bはグローバル配列にはしないで、mainで定義する。



第2話へ
 第4話へ


a

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

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