アフィリエイト広告を利用しています

広告

posted by fanblog

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';
}

b06_10.png




新版明解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());
}

b06_11.png




新版明解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';
}

b06_121.png

b06_122.png

新版 明解C 入門編 (明解シリーズ)

新品価格
¥2,916から
(2017/8/30 21:02時点)









--
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/6725737
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック

 たまに、クリック お願いします m(_ _)m

 AA にほんブログ村 IT技術ブログ C/C++へ

こうすけ:メール kousuke_cpp@outlook.jp

【1】★★C++ 記事目次★★ ← 利用可能です。
・新版明解C++入門編 / 新版明解C++中級編
・その他 C++ 関連記事

【2】★★こうすけ@C#★★
・C# の初歩的な記事


検索
<< 2018年08月 >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
プロフィール
こうすけさんの画像
こうすけ

 たまに、クリック お願いします m(_ _)m

 AA にほんブログ村 IT技術ブログ C/C++へ

こうすけ:メール kousuke_cpp@outlook.jp

【1】★★C++ 記事目次★★ ← 利用可能です。
・新版明解C++入門編 / 新版明解C++中級編
・その他 C++ 関連記事

【2】★★こうすけ@C#★★
・C# の初歩的な記事


×

この広告は30日以上新しい記事の更新がないブログに表示されております。