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

広告

posted by fanblog

2017年09月10日

《その22》 多重ループ
 ( p.109 演習3-17,演習3-18,演習3-19,演習3-20,演習3-21,演習3-22)


新版 明解C++ 入門編 p.109 演習3-17
  季節を求める List 3-1(p.82)の月の読込みにおいて、1 〜 12 以外の値が入力された場合は、再入力させるように変更したプログラムを作成せよ(do文の中に do文が入る二重ループとなる)。

// p109_演習3-17
#include <iostream>
using namespace std;

int main()
{
char retry;

do {
int m;
do {
cout << "何月ですか : "; cin >> m;
} while (m < 1 || m > 12);

switch (m) {
case 3:
case 4:
case 5: cout << "春です。\n"; break;
case 6:
case 7:
case 8: cout << "夏です。\n"; break;
case 9:
case 10:
case 11: cout << "秋です。\n"; break;
default: cout << "冬です。\n"; break;
}

cout << "\nもう一度? Y…Yes/N…No:"; cin >> retry;

} while (retry == 'Y' || retry == 'y');
}

b03_17.png





新版 明解C++ 入門編 p.109 演習3-18
  九九の表を表示する List 3-13(p.106)を、setw操作子を用いることなく実現するように書きかえたプログラムを作成せよ。

// p109_演習3-18
#include <iostream>
using namespace std;

int main()
{
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
int k = i * j;
k > 9 ? cout << " " : cout << " ";
cout << k;
}
cout << '\n';
}
}

b03_18.png



新版 明解C++ 入門編 p.109 演習3-19
  n段の正方形を表示するプログラムを作成せよ。

// p109_演習3-19
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "正方形を表示します。1辺の*の個数を入力:"; cin >> n;

for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++)
cout << '*';
cout << '\n';
}
}

b03_19.png



新版 明解C++ 入門編 p.109 演習3-20
  List 3-14 は左下側が直角の直角三角形を表示するプログラムであった。直角が左上側、右下側、右上側の直角三角形を表示するプログラムをそれぞれ作成せよ。

// p109_演習3-20
#include <iostream>
using namespace std;

int main()
{
int n;
cout << "直角三角形を表示します。段数を入力:"; cin >> n;

cout << "◆左上が直角\n";
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= i; j++)
cout << '*';
cout << '\n';
}
cout << '\n';

cout << "◆右下が直角\n";
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) cout << ' ';
for (int j = 1; j <= i; j++) cout << '*';
cout << '\n';
}
cout << '\n';

cout << "◆右上が直角\n";
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i - 1; j++) cout << ' ';
for (int j = 1; j <= n - i + 1; j++) cout << '*';
cout << '\n';
}
cout << '\n';
}

b03_20.png



新版 明解C++ 入門編 p.109 演習3-21
 n段のピラミッドを表示するプログラムを作成せよ。
 第i行目には (i - 1) * 2 + 1 個の '*'記号を表示すること(最終行である第n行目
には (n - 1) * 2 + 1 個の '*'記号を表示することになる)。


// p109_演習3-21
#include <iostream>
using namespace std;

int main()
{
    int n;
cout << "ピラミッドを表示します。段数を入力:"; cin >> n;

for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i ; j++) cout << ' ';
for (int j = 1; j <= 2 * i - 1; j++) cout << '*';
cout << '\n';
}
}

b03_21.png



新版 明解C++ 入門編 p.109 演習3-22
  n段の下向き数字ピラミッドを表示するプログラムを作成せよ。第i行目には i % 10 によって得られる数字を表示すること。

// p109_演習3-22
#include <iostream>
using namespace std;

int main()
{
int n;
cout << "逆さの数字ピラミッドを表示します。段数を入力:"; cin >> n;

for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i - 1; j++) cout << ' ';
for (int j = 1; j <= 2 * (n - i) + 1; j++) cout << i % 10;
cout << '\n';
}
}

/*
**********************************************
左空白の個数 数字の個数
1段目 0 (2 * n - 1) 
2段目 1 (2 * n - 1) - (1) * 2
3段目 2 (2 * n - 1) - (2) * 2

i段目 i - 1 (2 * n - 1) - (i - 1) * 2
**********************************************

上の (2 * n - 1) - (i - 1) * 2 は、計算すると 2 * (n - i) + 1 になります。
*/

b03_22.png

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

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









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

お名前:

メールアドレス:


ホームページアドレス:

コメント:

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

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

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

 たまに、クリック お願いします 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日以上新しい記事の更新がないブログに表示されております。