Загрузка данных
Обработка заняла 4s
Да. Я сверил именно твою практическую №2 и лекцию 4.
Сделаю максимально простым способом: обычные a, b, c, if, else if, while, do while, for, break, continue, без лишних наворотов. Без комментариев, как ты просил.
Но в заданиях 3 и 5 в условии есть данные, которых нет: цены напитков и способ случайного загадывания числа. Поэтому я не буду притворяться, что это есть в лекции — для 3-го поставлю простые цены, а в 5-м возьмём число 7, чтобы код оставался на уровне пройденного материала.
1
#include <iostream>
using namespace std;
int main() {
int a, b;
do {
cin >> a;
if (a == 0)
break;
cin >> b;
if (a < 5)
cout << "Вход запрещен: слишком маленький возраст" << endl;
else if (a <= 12 && b == 2)
cout << "Вход разрешен: детский билет" << endl;
else if (a <= 49 && (b == 1 || b == 4))
cout << "Вход разрешен" << endl;
else if (a <= 64 && b != 2)
cout << "Вход разрешен" << endl;
else if (a >= 65 && (b == 3 || b == 4))
cout << "Вход разрешен" << endl;
else
cout << "Вход запрещен" << endl;
} while (a != 0);
return 0;
}
Ввод, например:
20 1
60 2
0
Вывод:
Вход разрешен
Вход запрещен
---
2
#include <iostream>
using namespace std;
int main() {
int a, b, c;
do {
cin >> a;
if (a == -1)
break;
cin >> b >> c;
a = a + b * 3;
if (c == 1)
a = a + 15;
if (a > 100)
a = 100;
if (a >= 90)
cout << "Отлично" << endl;
else if (a >= 75)
cout << "Хорошо" << endl;
else if (a >= 60)
cout << "Удовлетворительно" << endl;
else
cout << "Неудовлетворительно" << endl;
} while (a != -1);
return 0;
}
Здесь:
a — основной балл
b — количество дополнительных заданий
c — бонус: 1 есть, 0 нет
-1 — выход.
Например:
80 2 1
-1
Считается:
80 + 2 * 3 + 15 = 101
Но максимум 100, поэтому:
Отлично
---
3
Здесь сделаем совсем простой вариант через switch, потому что switch есть в лекции и он как раз удобен для выбора напитка.
Цены возьмём:
эспрессо — 100
капучино — 150
латте — 140
чай — 80
горячий шоколад — 130
#include <iostream>
using namespace std;
int main() {
int a, c;
char b;
double d;
do {
cin >> a;
if (a == 0)
break;
switch (a) {
case 1:
cout << "Эспрессо" << endl;
d = 100;
break;
case 2:
cout << "Капучино" << endl;
d = 150;
break;
case 3:
cout << "Латте" << endl;
d = 140;
break;
case 4:
cout << "Чай" << endl;
d = 80;
break;
case 5:
cout << "Горячий шоколад" << endl;
d = 130;
break;
default:
cout << "Ошибка" << endl;
continue;
}
cin >> b;
if (b == 'M')
d = d * 1.3;
else if (b == 'L')
d = d * 1.5;
else if (b != 'S') {
cout << "Ошибка" << endl;
continue;
}
cin >> c;
if (c == 1)
cout << "Без добавок" << endl;
else if (c == 2) {
cout << "Молоко" << endl;
d = d + 10;
}
else if (c == 3) {
cout << "Сироп" << endl;
d = d + 15;
}
else if (c == 4) {
cout << "Сливки" << endl;
d = d + 20;
}
else {
cout << "Ошибка" << endl;
continue;
}
cout << "Размер: " << b << endl;
cout << "Цена: " << d << endl;
} while (a != 0);
return 0;
}
Например:
2
M
3
0
Получится:
Капучино
Сироп
Размер: M
Цена: 210
---
4
Тут for нужен прямо по условию.
#include <iostream>
using namespace std;
int main() {
int a, b;
double c, d = 0, e;
cin >> a;
for (b = 0; b < a; b++) {
cin >> c;
d = d + c;
}
e = d;
if (d > 5000)
d = d * 0.9;
cin >> b;
if (b == 1)
d = d * 0.95;
cout << e << endl;
cout << e - d << endl;
cout << d << endl;
cin >> c;
cout << c - d;
return 0;
}
Ввод:
3
2000
2000
2000
1
7000
Здесь:
3 — 3 товара
2000 2000 2000 — цены
1 — есть карта
7000 — сколько дал клиент.
Вывод примерно:
6000
840
5160
1840
То есть:
6000 ← без скидок
840 ← скидка
5160 ← к оплате
1840 ← сдача
---
5
В лекции 4 есть while, if, else if, break, continue, но случайных чисел там нет, поэтому rand() сюда не добавляю.
Берём загаданное число 7.
#include <iostream>
using namespace std;
int main() {
int a, b = 7, c = 0;
while (true) {
cin >> a;
if (a < 1 || a > 20) {
cout << "Ошибка! Введите число от 1 до 20." << endl;
continue;
}
c++;
if (a > b)
cout << "Слишком много! Попробуйте ещё." << endl;
else if (a < b)
cout << "Слишком мало! Попробуйте ещё." << endl;
else {
cout << "Поздравляем, вы угадали!" << endl;
cout << "Попыток: " << c << endl;
break;
}
}
return 0;
}
Например ввод:
10
5
7
Вывод:
Слишком много! Попробуйте ещё.
Слишком мало! Попробуйте ещё.
Поздравляем, вы угадали!
Попыток: 3
Что я специально НЕ использовал
Чтобы это не выглядело как код от человека, который уже изучил половину C++:
vector
sort
rand
функции кроме main
тернарный оператор ?:
auto
сложные конструкции
классы
всякие короткие «умные» записи.
То есть основа здесь ровно та, что у вас есть в лекции: if, else if, else, switch, while, do while, for, break, continue.