第8講 関数の学習
第7話 関数の総合演習その2
V 3次元配列(ポインタのポインタのポインタ)を関数に送る
解答例
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) {
//ポインタのポインタのポインタの宣言
int*** a;
//ポインタのポインタのポインタの初期化
a=(int*** )malloc(500);
//ポインタのポインタの初期化
int i;
for(i=0;i<5;i++)a[i]=(int** )malloc(100);
//ポインタの初期化
int j;
for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=(int* )malloc(20);
//文字型変数の宣言と初期化
String^ w=L"";
//関数に3次元配列(ポインタのポインタのポインタ)を送る。
w=f(a);
//データ表示
label1->Text=w;
}
String^ f(int*** a){
//変数の宣言
int i,j,k;
//文字型変数の宣言と初期化
String^ w=L"";
//データの発生
for(i=0;i<5;i++){
for(j=0;j<5;j++){
for(k=0;k<5;k++){
a[i][j][k]=25*i+5*j+k+1;
}
}
}
//データを文字型変数に収納する。
for(i=0;i<5;i++){
for(j=0;j<5;j++){
for(k=0;k<5;k++){
if(a[i][j][k]<10)w=w+L"00"+(a[i][j][k]).ToString()+L"
";
if(a[i][j][k]>=10 && a[i][j][k]<100)w=w+L"0"+(a[i][j][k]).ToString()+L"
";
if(a[i][j][k]>=100 )w=w+(a[i][j][k]).ToString()+L"
";
}
w=w+"\n";
}
w=w+"\n";
w=w+"\n";
}
//文字型変数を返す。
return w;
}
};
}
W 4次元配列(ポインタのポインタのポインタのポインタ)を関数に送る
解答例
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^
e) {
//ポインタのポインタのポインタのポインタの宣言
int**** a;
//ポインタのポインタのポインタのポインタの初期化
a=(int**** )malloc(2500);
//ポインタのポインタのポインタの初期化
int i;
for(i=0;i<5;i++)a[i]=(int*** )malloc(500);
//ポインタのポインタの初期化
int j;
for(i=0;i<5;i++)for(j=0;j<5;j++)a[i][j]=(int** )malloc(100);
//ポインタの初期化
int k;
for(i=0;i<5;i++)for(j=0;j<5;j++)for(k=0;k<5;k++)a[i][j][k]=(int*
)malloc(20);
//文字型変数の宣言と初期化
String^ w=L"";
//関数に4次元配列(ポインタのポインタのポインタ)を送る。
w=f(a);
//データ表示
label1->Text=w;
}
String^ f(int**** a){
//変数の宣言
int i,j,k,l;
//文字型変数の宣言と初期化
String^ w=L"";
//データの発生
for(i=0;i<5;i++){
for(j=0;j<5;j++){
for(k=0;k<5;k++){
for(l=0;l<5;l++){
a[i][j][k][l]=125*i+25*j+5*k+l+1;
}
}
}
}
//データを文字型変数に収納する。
for(i=0;i<5;i++){
for(j=0;j<5;j++){
for(k=0;k<5;k++){
for(l=0;l<5;l++){
if(a[i][j][k][l]<10)w=w+L"00"+(a[i][j][k][l]).ToString()+L"
";
if(a[i][j][k][l]>=10 && a[i][j][k][l]<100)w=w+L"0"+(a[i][j][k][l]).ToString()+L"
";
if(a[i][j][k][l]>=100 )w=w+(a[i][j][k][l]).ToString()+L"
";
}
w=w+"\n";
}
w=w+"\n";
w=w+"\n";
}
w=w+"\n";
w=w+"\n";
w=w+"\n";
}
//文字型変数を返す。
return w;
}
};
}
実行結果
以上で、第8講は終了します。卒業まで後2講です。がんばりましょう。
第6話へ 第9講第1話へ