Вот задача:
Угадать число, которое загадал пользователь, используя только инструкцию if-else.
Число должно быть в диапазоне от 0 до 10ти.
Вот код:
#include <stdio.h>
int main() {
int a;
printf("Да это 1 , нет это 0nЭто число 6 ?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 6n");
else
printf("Это число 1 ?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 1n");
return 0;
else
printf("Это число 10 ?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 10n");
else
printf("Это число 2?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 2n");
else
printf("Это число 3 ?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 3n");
else
printf("Это число 4?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 4n");
return 0;
}
задан 16 фев 2020 в 18:15
4
#include <stdio.h>
int main()
{
int a;
printf_s("Да это 1 , нет это 0nЭто число 6 ?n");
scanf_s("%d", &a);
if (a == 1)
printf("Ваше число 6n");
else
{
printf("Это число 1 ?n");
scanf_s("%d", &a);
if (a == 1)
printf("Ваше число 1n");
else
{
printf("Это число 10 ?n");
scanf_s("%d", &a);
if (a == 1)
printf("Ваше число 10n");
else
{
printf("Это число 2?n");
scanf_s("%d", &a);
if (a == 1)
printf("Ваше число 2n");
else
{
printf("Это число 3 ?n");
scanf_s("%d", &a);
if (a == 1)
printf("Ваше число 3n");
else
{
printf("Это число 4?n");
scanf_s("%d", &a);
if (a == 1)
printf("Ваше число 4n");
else
printf("Дописать для 5,7,8 если я верно понял задачу, угадайка методом перебора это конечно что то новое");
}
}
}
}
}
return 0;
}
ответ дан 16 фев 2020 в 18:33
KirzzzKirzzz
4212 серебряных знака9 бронзовых знаков
0
Тема 2. Условный оператор или оператор ветвления.
Условные операторы являются неотъемлемой частью программ (в том числе при решении задач) на почти всех языках программирования. Стандартным оператором ветвления является оператор if и его продолжение else. В ряде языков программирования кроме if-else предусмотрены и другие операторы ветвления. В Pascal это оператор выбора case. Однако он используется куда реже, так как удобен лишь в особых случаях и не такой гибкий как if.
Задача 1.
Вводится натуральное число. Найти сумму четных цифр, входящих в его состав.
РЕШЕНИЕ:
var
n: longint;
sum: integer;
begin
readln(n);
sum := 0;
while n > 0 do begin
if n mod 10 mod 2 = 0 then
sum := sum + n mod 10;
n := n div 10;
end;
writeln(sum);
end.
Задача 2.
Написать программу, подсчитывающую количество четных и нечетных цифр в числе.
РЕШЕНИЕ:
var
a: integer;
even,odd: byte;
begin
readln(a);
even := 0;
odd := 0;
while a > 0 do begin
if (a mod 2) = 0 then
even := even + 1
else
odd := odd + 1;
a := a div 10;
end;
writeln('even: ', even);
writeln('odd: ', odd);
end.
Задача 3.
Угадать число, которое загадал пользователь, используя только инструкцию if-else.
РЕШЕНИЕ:
var
n: char;
begin
write('Think of a number of from 1 to 5 and press Enter');
readln;
write('The number more then 3? (y/n) '); readln(n);
if n = 'y' then begin
write('The number is 4? (y/n) '); readln(n);
if n = 'n' then
writeln('The number is 5.');
end
else begin
write('The number is 1? (y/n) '); readln(n);
if n = 'n' then begin
write('The number is 2? (y/n) '); readln(n);
if n = 'n' then
writeln('The number is 3.');
end;
end;
writeln('Guessed!');
end.
Задача 4
Пример программы, позволяющей вычислять площади трех геометрических фигур: прямоугольника, треугольника и круга.
РЕШЕНИЕ:
Площадь прямоугольника: area = a * b Площадь треугольника: area = sqrt(s * (s – a) * (s – b) * (s – c)), где s = (a + b + c) / 2 Площадь круга: area = pi * sqr(d) / 4
Пользователь осуществляет выбор фигуры, площадь которой он хочет получить, путем ввода цифр 1, 2 или 3. Для выбора ветви вычисления используется конструкция if-else, которая включает вторую конструкцию if-else, а та, в свою очередь, — третью:
if 1 then
const
pi = 3.14;
var
figure: byte;
area, s, a, b, c, d: real;
ok: boolean;
begin
ok := true;
write('Фигура (1 - прямоугольник, 2 - треугольник',
', 3 - круг): ');
readln(figure);
if figure = 1 then begin
write('Длины сторон: ');
readln(a, b);
area := a * b
end
else
if figure = 2 then begin
write('Длины сторон: ');
readln(a, b, c);
s := 0.5 * (a + b + c);
area := sqrt(s * (s - a) * (s - b) * (s - c))
end
else
if figure = 3 then begin
write('Диаметр: ');
readln(d);
area := pi * sqr(d) / 4
end
else
ok := false;
if ok then
writeln('Площадь: ', area:8:2)
else
writeln('Ошибка ввода');
readln
end.
Примечания:
При вводе сторон треугольника должно быть соблюдено правило: сумма любых двух сторон должна быть больше третьей. Иначе возникает ошибка.
Задача 5
Определить, кратно ли заданное число трем; если нет, вывести остаток.
РЕШЕНИЕ:
var
num, modulo: integer;
begin
write('Number: ');
readln(num);
modulo:= num mod 3;
case modulo of
0: writeln(num,' divisible by 3');
1: writeln(num,' is not divisible by 3, the remainder is equal 1');
2: writeln(num,' is not divisible by 3, the remainder is equal 2');
end;
end.
Задания по теме для самостоятельного решения.
- Проверить трехзначное число на четность и найти сумму его цифр, если число четное, или произведение его цифр, если число нечетное.
- Сгенерировать случайное трехзначное число, оканчивающееся на ноль.
- Определить, является ли год, который ввел пользователем, високосным или невисокосным.
- Вводятся три целых числа. Определить какое из них наибольшее.
- Найти корни квадратного уравнения и вывести их на экран, если они есть. Если корней нет, то вывести сообщение об этом. Конкретное квадратное уравнение определяется коэффициентами a, b, c, которые вводит пользователь.
Цитата
Угадать число, которое загадал пользователь,используя только инструкцию if-else
Код программы:
Код
static int MAX = 10; //число попыток
int gamer() //угадывает игрок
{
int i, b = 1 + rand() % 1001, r;
cout << «Попробуйте угадать число от единицы до 1 милиона. У тебя 10 попыток.» << endl;
cout << «Введите число: «; cin >> r;
for (i = 1; i < MAX; i++)
{
hi:
if (r < 1 || r > 1001) { goto hi; }
else if (r < b)
{
cout <<«Введенное вами число меньше загаданного» << endl << «Введите число: «; cin >> r;
}
else if (r > b)
{
cout << «Введенное вами число больше загаданного» << endl << «Введите число: «; cin >> r;
}
else if (r == b)
{
cout << «Вы угадали загаданное число » << b << » с » << i+1 << » попытки. Поздравляем!» << endl;
return 0;
}
}
cout << «Сожалением. Вы не смогли угадать число» << endl; return 0;
}
int comp() //угадывает компьютер
{
int i, b = -1;
int min = 1, max = 1001;
while (b < 1 || b > 1000)
{
cout << «Введите число, которое будет угадывать компьютер (диапазон от единицы до 1 миллиона). У компьютера 10 попыток. Число: «;
cin >> b;
}
int r = min + rand() % max;
for (i = 0; i < MAX; i++)
{
cout << «Компьютер: мое число — » << r;
if (r > b)
{
if (max > r) { max = r; }
while (r >= max || r <= min) { r = min + rand() % max; }
cout << «Игрок: это число больше моего» << endl;
goto endd;
}
else if (r < b)
{
if (min < r) { min = r; }
while (r <= min || r >= max) { r = min + rand() % max; }
cout << «Игрок: это число меньше моего» << endl;
goto endd;
}
else if (r == b)
{
cout << «Компьютер угадал загаданное число » << b << » с » << i + 1 << » попытки. Поздравляем его!» << endl;
return 0;
}
endd:;
}
cout << «Сожалением. Компьютер не смог угадать число» << endl; return 0;
}
int main(int argc, char *argv)
{
setlocale(LC_ALL, «Russian»); start:
srand(time(NULL));
cout << » Выберите режим в котором вы хотите играть! (Введите — 1, чтобы начать угадывать числа у компьютера. Введите — 2, чтобы компьютер угадывал число у вас)»;
cout << » Чтобы завершить игру введите «exit». » << endl;
string ili;
cin >> ili;
if (ili == (string)»1″)
{
gamer(); goto start;
}
else if (ili == (string)»2″)
{
comp(); goto start;
}
else if (ili == (string)»exit»)
{
system(«pause»); return 0;
}
else
{
cout << «Неправильный ввод.» << endl; goto start;
}
}
Библиотеки:
Код
#include <fstream>
#include<locale.h>
#include<time.h>
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
#include <iostream>
#include <string>
using namespace std;
Перейти к содержанию
Угадать случайное число
Просмотров 10.9к. Обновлено 29 октября 2021
- Сгенерировать случайное число.
- Ввести счетчик попыток. Присвоить ему значение 1.
- Пока счетчик попыток меньше, либо равен 10
- запрашивать у пользователя очередное число,
- если оно больше загаданного, то выводить «много»,
- если оно меньше загаданного, то выводить «мало»,
- иначе сообщать, что число угадано и прерывать выполнение цикла,
- увеличивать счетчик попыток на единицу.
- После цикла, если число не было угадано, то вывести сообщение о том, что попытки исчерпаны, и какое число было загадано компьютером.
Самый верный способ отгадать число менее чем за 10 попыток — это делить диапазон на 2. Например, если число лежит в пределах от 0 до 100, то введя 50 мы сразу сокращаем диапазон поиска в два раза. Если было сказано, что загаданное число меньше 50-ти, то вводим 25 и таким образом снова сокращаем диапазон в 2 раза.
Если следовать этому правилу то потребуется 6-7 попыток, т.к. число 100 (изначальная длина диапазона) лежит в пределах между 26 и 27.
Pascal
угадать число от 1 до 100 паскаль
var n,u,i: byte;
begin
randomize;
n := random(100);
i := 1;
writeln('Отгадайте число за 10 попыток');
while i <= 10 do begin
write(i,'-я попытка: ');
readln(u);
if u > n then
writeln('Много')
else
if u < n then
writeln('Мало')
else begin
writeln('Угадано!');
break;
end;
i := i + 1;
end;
if i = 11 then
writeln('Вы не угадали. Было загадано ',n);
end.
Отгадайте число за 10 попыток
1-я попытка: 47
Мало
2-я попытка: 85
Много
3-я попытка: 59
Мало
4-я попытка: 70
Мало
5-я попытка: 78
Много
6-я попытка: 74
Угадано!Отгадайте число за 10 попыток
1-я попытка: 90
Много
2-я попытка: 80
Много
3-я попытка: 70
Много
4-я попытка: 60
Много
5-я попытка: 50
Мало
6-я попытка: 59
Много
7-я попытка: 58
Много
8-я попытка: 59
Много
9-я попытка: 57
Много
10-я попытка: 56
Много
Вы не угадали. Было загадано 55
Язык Си
#includemain() {
srand(time(NULL));
int n,u,i;
n = rand() % 100;
i = 1;
while (i<=10) {
printf("%d-я попытка: ", i);
scanf("%d", &u);
if (u < n) printf("Малоn");
else
if (u > n) printf("Многоn");
else {
printf("Угадано!n");
break;
}
i += 1;
}
if (i == 11)
printf("Не угадали. Это число %dn", n);
}
Python
угадать число от 1 до 100 python (питон)
from random import random
n = round(random() * 100)
i = 1
print("Компьютер загадал число. Отгадайте его. У вас 10 попыток")
while i <= 10:
u = int(input(str(i) + '-я попытка: '))
if u > n:
print('Много')
elif u < n:
print('Мало')
else:
print('Вы угадали с %d-й попытки' % i)
break
i += 1
else:
print('Вы исчерпали 10 попыток. Было загадано', n)
В Питоне есть расширение else для цикла while, которое выполняется единожды, когда логическое выражение в заголовке while возвращает ложь.
КуМир
алг угадай число
нач
цел n,u,i
n := int(rand(0,100))
i := 1
вывод "Отгадай число не более чем за 10 попыток", нс
нц пока i<=10
вывод i,"-я попытка: "
ввод u
если u>n то вывод "Много", нс
иначе
если u< n то вывод "Мало", нс
иначе
вывод "Угадано!"
выход
все
все
i := i+1
кц
если i = 11 то
вывод "Вы не угадали число ", n
все
кон
Basic-256
n = int(rand * 100)
i = 1
print "Угадайте число от 1 до 100"
while i <= 10
print i + "-я попытка: ";
input u
if u < n then
print "Мало"
else
if u > n then
print "Много"
else
print "Угадано!"
end
endif
endif
i = i + 1
endwhile
if i = 11 then print "Не угадано число " + n
Вот задача:
Угадать число, которое загадал пользователь, используя только инструкцию if-else.
Число должно быть в диапазоне от 0 до 10ти.
Вот код:
#include <stdio.h>
int main() {
int a;
printf("Да это 1 , нет это 0nЭто число 6 ?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 6n");
else
printf("Это число 1 ?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 1n");
return 0;
else
printf("Это число 10 ?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 10n");
else
printf("Это число 2?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 2n");
else
printf("Это число 3 ?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 3n");
else
printf("Это число 4?n");
scanf("%d", &a);
if (a == 1)
printf("Ваше число 4n");
return 0;
}