Угадать число которое загадал пользователь используя только инструкцию if else

Вот задача:
Угадать число, которое загадал пользователь, используя только инструкцию 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

Barys6's user avatar

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;

}

Suvitruf - Andrei Apanasik's user avatar

ответ дан 16 фев 2020 в 18:33

Kirzzz's user avatar

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. Сгенерировать случайное число.
  2. Ввести счетчик попыток. Присвоить ему значение 1.
  3. Пока счетчик попыток меньше, либо равен 10
    1. запрашивать у пользователя очередное число,
    2. если оно больше загаданного, то выводить «много»,
    3. если оно меньше загаданного, то выводить «мало»,
    4. иначе сообщать, что число угадано и прерывать выполнение цикла,
    5. увеличивать счетчик попыток на единицу.
  4. После цикла, если число не было угадано, то вывести сообщение о том, что попытки исчерпаны, и какое число было загадано компьютером.

Самый верный способ отгадать число менее чем за 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

Язык Си


#include

main() {
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;                       
}

Понравилась статья? Поделить с друзьями:
  • Увч 70 01а стрела инструкция
  • Увф 6 водонепроницаемость бетона инструкция
  • Увф 250 инструкция по эксплуатации
  • Увф 1000 инструкция по эксплуатации
  • Увольняют по сокращению штатов пошаговая инструкция для работника