2017年09月21日
《その39》 引数を受け取らない関数(p.215演習6-10,演習6-11),デフォルト実引数(p.217演習6-12)
新版明解C++入門編 p.215 演習6-10
「正の整数値:」と表示して、キーボードから正の整数値を読み込んで、その値を返却する
関数 read_pint を作成せよ。0や負の値が入力されたら再入力させること。
int read_pint();
// p215_演習6-10
#include <iostream>
using namespace std;
int read_pint()
{
int a;
do {
cout << "正の整数値:"; cin >> a;
} while (a < 1);
return a;
}
int main()
{
cout << "受け取った正の整数値は … " << read_pint() << '\n';
}
新版明解C++入門編 p.215 演習6-11
List 6-11 を拡張して、以下の4種類の問題をランダムに出題するプログラムを作成せよ。
x + y + z
x + y - z
x - y + z
x - y - z
// p215_演習6-11
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
bool confirm_retry()
{
int retry;
do {
cout << "もう一度?<Yes…1/No…0>:"; cin >> retry;
} while (retry != 0 && retry != 1);
return static_cast<bool>(retry);
}
int main()
{
srand(static_cast<int>(time(NULL)));
do {
int x = rand() % 900 + 100;
int y = rand() % 900 + 100;
int z = rand() % 900 + 100;
int n = rand() % 4;
switch (n) {
case 0: while (true) {
int a;
cout << x << " + " << y << " + " << z << " = "; cin >> a;
if (a == x + y + z) {
cout << "正解!\n"; break;
}
cout << "\a不正解!\n";
}
break;
case 1: while (true) {
int a;
cout << x << " + " << y << " - " << z << " = "; cin >> a;
if (a == x + y - z) {
cout << "正解!\n"; break;
}
cout << "\a不正解!\n";
}
break;
case 2: while (true) {
int a;
cout << x << " - " << y << " + " << z << " = "; cin >> a;
if (a == x - y + z) {
cout << "正解!\n"; break;
}
cout << "\a不正解!\n";
}
break;
case 3: while (true) {
int a;
cout << x << " - " << y << " - " << z << " = "; cin >> a;
if (a == x - y - z) {
cout << "正解!\n"; break;
}
cout << "\a不正解!\n";
}
break;
}
} while (confirm_retry());
}
新版明解C++入門編 p.217 演習6-12
b以上a以下の全整数の和を求める関数 sum を作成せよ。なお、bに対する実引数が省略されて呼び出された場合は、bを 1とみなして合計を求めること。
int sum(int a, int b);
// p217_演習6-12
#include <iostream>
using namespace std;
int sum(int a, int b = 1)
{
int t = 0;
for (int i = b; i <= a; i++)
t += i;
return t;
}
int main()
{
int a, b, total, yes_no;
cout << "b以上a以下の全整数の和を求めます。\n";
cout << "最後の整数a : "; cin >> a;
cout << "最初の整数bを指定しますか?\n";
do {
cout << " する(1),しない(0) : "; cin >> yes_no;
} while (yes_no != 1 && yes_no != 0);
if (yes_no == 1) {
cout << "最初の整数b : "; cin >> b;
total = sum(a, b);
}
else
total = sum(a);
cout << "和 … " << total << '\n';
}
--
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6725737
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック