2017年09月20日
《その34》 多次元配列(p.187演習5-10,演習5-11)
新版明解C++入門編 p.187 演習5-10
4行3列の行列と3行4列の行列の積を求めるプログラムを作成せよ。各構成要素の値はキーボードから読み込むこと。
// p187_演習5-10
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
int a[4][3]; int b[3][4]; int c[4][4];
cout << "4行3列の行列aの要素を読み込む\n";
for (int i = 0; i < 4; i++)
for (int j = 0; j < 3; j++) {
cout << "a[" << i << "][" << j << "] = "; cin >> a[i][j];
}
cout << "3行4列の行列bの要素を読み込む\n";
for (int i = 0; i < 3; i++)
for (int j = 0; j < 4; j++) {
cout << "b[" << i << "][" << j << "] = "; cin >> b[i][j];
}
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++) {
c[i][j] = 0;
for (int k = 0; k < 3; k++)
c[i][j] += a[i][k] * b[k][j];
}
cout << "\n◆行列a\n";
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++)
cout << setw(4) << a[i][j];
cout << '\n';
}
cout << "\n◆行列b\n";
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++)
cout << setw(4) << b[i][j];
cout << '\n';
}
cout << "\n◆行列aと行列bの積\n";
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++)
cout << setw(4) << c[i][j];
cout << '\n';
}
}
新版明解C++入門編 p.187 演習5-11
6人の2科目(国語・数学)の点数を読み込んで、科目ごとの合計点と平均点、学生ごとの合計点と平均点を求めるプログラムを作成せよ。
// p187_演習5-11
#include <iomanip>
#include <iostream>
using namespace std;
int main()
{
// 国 数
int a[6][2] = { { 56, 25},
{100, 89},
{ 77, 36},
{ 49, 80},
{100, 100},
{ 17, 2}, };
int subject[2] = {0};
for (int i = 0; i < 6; i++)
for (int j = 0; j < 2; j++)
subject[j] += a[i][j];
cout << "国_合計 : " << setw(4)
<< subject[0] << '\n'
<< "国_平均 : " << setw(6)
<< fixed
<< setprecision(1)
<< (double)subject[0] / 6 << '\n';
cout << "数_合計 : " << setw(4)
<< subject[1] << '\n'
<< "数_平均 : " << setw(6)
<< (double)subject[1] / 6 << "\n\n";
int student[6] = {0};
for (int i = 0; i < 6; i++)
for (int j = 0; j < 2; j++)
student[i] += a[i][j];
for (int i = 0; i < 6; i++)
cout << "生徒" << i + 1
<< " … 2教科合計 " << setw(3)
<< student[i]
<< " 2教科平均 " << setw(5)
<< (double)student[i] / 2 << '\n';
}
--
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6719474
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック