Тема: Приклад з книги Шильдта не працює.
Є код з книги Шильдта С++ Базовый курс, ст.99, код видає при любому значенні один результат.
Код Шильдта:
// Програма "Вгадай магічне число":
// остання версія.
#include <iostream>
#include <cstdlib>
using namespace std;
void play(int m);
int main()
{
setlocale(LC_CTYPE, "ukr");
int option, magic;
magic = rand();
do {
cout << "1. Отримати нове магiчне число\n";
cout << "2. Пограти\n";
cout << "3. Вийти з програми\n";
do {
cout << "Введи свiй варiант: ";
cin >> option;
} while (option > 1 || option < 3);
switch (option) {
case 1:
magic = rand();
break;
case 2:
play(magic);
break;
case 3:
cout << "Допобачення!!!\n";
break;
}
} while (option != 3);
getchar();
}
// Пограємо в гру.
void play(int m)
{
int t, x;
for (t = 0; t < 100; t++) {
cout << "Вгадай магiчне число: ";
cin >> x;
if (x == m){
cout << "**Правильно**\n";
getchar();
}
else
if (x < m) cout << "Мало.\n";
else cout << "Багато\n";
}
cout << "Ти використав всi шанси вгадати число.\n";
cout << "Спробуй знову!";
getchar();
}
Та мій варіант (теж такий самий результат):
// Програма "Вгадай магічне число":
// остання версія.
#include <iostream>
#include <cstdlib>
using namespace std;
void play(int m);
int main()
{
setlocale(LC_CTYPE, "ukr");
int option, magic;
magic = rand();
do {
cout << "1. Отримати нове магiчне число\n";
cout << "2. Пограти\n";
cout << "3. Вийти з програми\n";
do {
cout << "Введи свiй варiант: ";
cin >> option;
} while (option > 0 && option < 4);
switch (option) {
case 1:
cout << magic;
break;
case 2:
play(magic);
break;
case 3:
cout << "Допобачення!!!\n";
break;
}
} while (option != 3);
getchar();
}
// Пограємо в гру.
void play(int m)
{
int t, x;
for (t = 0; t < 100; t++) {
cout << "Вгадай магiчне число: ";
cin >> x;
if (x == m){
cout << "**Правильно**\n";
getchar();
}
else
if (x < m) cout << "Мало.\n";
else cout << "Багато\n";
}
cout << "Ти використав всi шанси вгадати число.\n";
cout << "Спробуй знову!";
getchar();
}