マルチスレッド版数独自動生成ソフトC++コードを題材とする超初心者のためのVisual Studio C++講義
第4章 if文(もしもボックス))
第7話 得点の1桁から3桁にも対応する

(
出席番号 得点 合否判定
1 70 合格
2 80 合格
3 80 合格
4 0 不合格
5 49 不合格
6 100 合格
7 38 不合格
8 67 合格
9 45 不合格
10 70 合格
11 34 不合格
12 72 合格
13 30 不合格
14 26 不合格
15 96 合格
16 36 不合格
17 28 不合格
18 51 合格
19 99 合格
20 92 合格
21 29 不合格
22 39 不合格
23 12 不合格
24 2 不合格
25 22 不合格
26 70 合格
27 70 合格
28 10 不合格
29 70 合格
)
を実現するコード例
#include<iostream>//インクルードファイルiostreamの読み込み
#include<conio.h>//while(!_kbhit());を使うためのお呪い
#include<string> //文字列変数を使えるようにするために組み込む
#include <iomanip> //setprecisionを使えるように組み込む
#include <cmath>//powなどを使うときに必要
#include <ctime>//time()(←現時刻発生する関数)を使うために必要
using namespace std;//coutを使うときに必要なお呪い
void ランダムデータの生成と判定();//0以上100以下の整数データを生成して合否判定をする。
int main() {//私は社長だ。
ランダムデータの生成と判定();
while (!_kbhit());//待機させるための命令
return(0);//int main()終わるためのお呪い
}
void ランダムデータの生成と判定() {
//0以上100以下の整数データを生成して合否判定をする。
srand((unsigned)time(NULL));//シード値を現在時刻から取得
cout << "出席番号 得点 合否判定" << endl;
for (int i = 0; i < 100; i++) {
int 得点 = rand() % 101;//0以上100以下の整数データを生成する。
cout << " ";
if (i + 1 == 100) {//if文の条件式の等しいは = ではなく == を使います。
cout << i + 1;
}
if (i + 1 < 100 && i + 1 >= 10) {
cout << " " << i + 1;
}
if (i + 1 < 10) {
cout << " " << i + 1;
}
if (得点 < 10)cout << " ";
if (得点 >= 10 && 得点 < 100)cout << " ";
cout << " " << 得点;
if (得点 >= 50) {
cout << " 合格" << endl;
}
else {
cout << " 不合格" << endl;
}
}
}
if (i + 1 == 100) {//if文の条件式の等しいは = ではなく == を使います。
cout << i + 1;
}
if (i + 1 < 100 && i + 1 >= 10) {
cout << " " << i + 1;
}
if (i + 1 < 10) {
cout << " " << i + 1;
}
は
if (p) {
A;
}
else{
B;
}
を使っても実現できます。
if (i + 1 == 100) {
cout << i + 1;
}
else {
if (i + 1 >= 10) {
cout << " " << i + 1;
}
else {
cout << " " << i + 1;
}
}
少し難しいですが、if文を入れ子式に使うという考え方も使えるようにしましょう。
難しいことに遭遇してもあきらめないで粘り強く挑み続けるという姿勢が大切です。
この姿勢がないと、数独自動生成ソフトや推薦書自動生成ソフトの開発は夢のまた夢となります。
大切なことは不屈の精神です。
if (i + 1 == 100) {//if文の条件式の等しいは = ではなく == を使います。
cout << i + 1;
}
else {
if (i + 1 >= 10) {
cout << " " << i + 1;
}
else {
cout << " " << i + 1;
}
}
を使って出席番号と得点の両方を書き換えてください。
注釈文の 「if文の条件式の等しいは = ではなく == を使います。」
にも注意してください。
= は代入です。
等しいは == を使います。
だたし、使うのはif文や後に学ぶwhile文などに限られます。
if (i + 1 >= 10) においてif (i + 1 < 100 && i + 1 >= 10) {の色のついている部分はなぜ不要なのか考えることも今回の課題です。

(
33 56 合格
34 0 不合格
35 92 合格
36 31 不合格
37 58 合格
38 13 不合格
39 57 合格
40 73 合格
41 11 不合格
42 37 不合格
43 21 不合格
44 84 合格
45 86 合格
46 43 不合格
47 30 不合格
48 96 合格
49 100 合格
50 3 不合格
51 29 不合格
52 94 合格
}
第4章第6話へ 第4章第8話へ
本講義トップへ