第7講 配列と2次元ループの学習
第6話 データ保存問題解答例と列・行合計を求める問題

解答例を示しておきましょう。
繰り返しますが、下はあくまで解答例であって、
結果が思ったように出ていればその他であっても正解です。
プログラムの解答は無数にあるのです。

for(i=0;i<4;i++){
  for(j=0;j<4;j++){
    h1[i][j]=b[i][j]+c[i][j];
    h2[i][j]=b[i][j]-c[i][j];
    h3[i][j]=b[i][j]*c[i][j];
  }
}
w=L"";
for(i=0;i<4;i++){
  for(j=0;j<4;j++){
    if(h1[i][j]<10){
      w=w+L"0"+h1[i][j].ToString()+L" ";
    }
    else{
      w=w+h1[i][j].ToString()+L" ";
    }
  }
  w=w+L"\n";
}
label6->Text=w;
w=L"";
for(i=0;i<4;i++){
  for(j=0;j<4;j++){
    if(h2[i][j]<10){
      w=w+L"0"+h2[i][j].ToString()+L" ";
    }
    else{
      w=w+h2[i][j].ToString()+L" ";
    }
  }
  w=w+L"\n";
}
label7->Text=w;
w=L"";
for(i=0;i<4;i++){
  for(j=0;j<4;j++){
    if(h3[i][j]<10){
      w=w+L"00"+h3[i][j].ToString()+L" ";
    }
    else{
      if(b[i][j]*c[i][j]<100){
        w=w+L"0"+h3[i][j].ToString()+L" ";
      }
      else{
        w=w+h3[i][j].ToString()+L" ";
      }
    }
  }
  w=w+L"\n";
}
label9->Text=w;

ではまた課題を出しましょう。
pp
この出力結果は、差のところがすべて5になってしまっています。
ooiiが規則的に1ずつ増えていくようになっているので、
答えがすべて5になってしまうのです。
そこで、
uuのように
yyttの部分を16以下の整数をランダムに発生させて、差の部分の答えがいろいろになるようにしてみます。
プログラム次のように改良してください。
まずソースコードの冒頭に
rr#include<stdlib.h>を加えてください。
stdlib.hはインクルードファイルといいます。
乱数を発生させる関数rand()を呼び込むのに必要なファイルであるとご理解ください。
関数rand()を使うので、それを呼び出すのに必要なファイルをinclude(インクルード)すなわち読み込みしているのです。

そして、プログラムコード
for(i=0;i<4;i++){
  for(j=0;j<4;j++){
    if(h2[i][j]<10){
      w=w+L"0"+h2[i][j].ToString()+L" ";
    }
    else{
      w=w+h2[i][j].ToString()+L" ";
    }
  }
  w=w+L"\n";
}

for(i=0;i<4;i++){
  for(j=0;j<4;j++){
    if((h2[i][j]>=0) & (h2[i][j]<10)){
    w=w+L"00"+h2[i][j].ToString()+L" ";
  }
  if((h2[i][j]>-10) & (h2[i][j]<0)){
    w=w+L"-0"+(-h2[i][j]).ToString()+L" ";
  }
  if(h2[i][j]<=-10){
    w=w+h2[i][j].ToString()+L" ";
  }
  if(h2[i][j]>=10){
    w=w+L"0"+h2[i][j].ToString()+L" ";
  }
  w=w+L"\n";
}
のように変更してください。
また、
for(i=0;i<4;i++){
   for(j=0;j<4;j++){
     b[i][j]=4*i+j+5;

   }
}
の部分はなどはb[i][j]=4*i+j+5;b[i][j]=rand() % 10;
と変更してください。他も同様です。
そして、ビルドして実行すると、
eeとなります。
ただし、乱数ですから実行ボタンを押す度に結果は変わります。例えば、
wwです。
では問題です。実行ボタンを押すとqqのすべての列、すべての行の合計を計算させ、
aaと表示させてみましょう。

今回もかなり難しいですよ。試行錯誤で頑張りましょう。


第5話へ 第7話へ

a
初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部

vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすい vb 入門 vba 入門 基礎から応用まで 第1部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ