Конструкция if-else и тернарный оператор

Последнее обновление: 20.02.2023
Упражнение 1

Напишите программу, которая предлагает ввести два целых числа, а затем использует конструкцию if-else для вывода сообщения о том, равны ли два числа.

Решение
#include <iostream>
 
int main()
{
    int a {};
    int b {};
    std::cout << "Enter a first number: ";
    std::cin >> a;
    std::cout << "Enter a second number: ";
    std::cin >> b;
      
    if(a == b)
    {
        std::cout << "numbers are equal" << std::endl;
    }
    else
    {
        std::cout << "numbers are not equal" << std::endl;
    }
}

Пример работы программы:

Enter a first number: 3
Enter a second number: 3
numbers are equal
Упражнение 2

Напишите программу, которая предлагает ввести два целых числа и выясняет, делится ли первое число на второе без остатка (кратно ли второе число). Предусмотрите вариант, когда в качестве второго числа можно ввести 0 (на ноль же делить нельзя). В этом случае программа ничего вычисляет, а просто завершает выполнение.

Решение
#include <iostream>
 
int main()
{
    int a {};
    int b {};
    std::cout << "Enter a first number: ";
    std::cin >> a;
    std::cout << "Enter a second number: ";
    std::cin >> b;
    
    // если не равно 0
    if(b!=0)  
    {
        // если НЕ равно 0, то числа кратны
        if(a % b!=0)
        {
            
            std::cout << "a and not devisible" << std::endl;    // числа НЕ кратны
        }
        else
        {
            std::cout << "a and b devisible" << std::endl;  // числа кратны
        }
    }
    else
    {
        std::cout << "Panic! b = 0! Bad data!" << std::endl;
    }   
}

Пример работы программы:

c:\cpp>g++ hello.cpp -o hello & hello
Enter a first number: 10
Enter a second number: 5
a and b devisible

c:\cpp>g++ hello.cpp -o hello & hello
Enter a first number: 2
Enter a second number: 0
Panic! b = 0! Bad data!

c:\cpp>g++ hello.cpp -o hello & hello
Enter a first number: 4
Enter a second number: 3
a and not devisible

Стоит отметить, что в C++ все числа, которые равны 0, в условных выражениях преобразуются в false. Соответственно мы можем использовать этот факт, для небольшого сокращения кода:

#include <iostream>
 
int main()
{
    int a {};
    int b {};
    std::cout << "Enter a first number: ";
    std::cin >> a;
    std::cout << "Enter a second number: ";
    std::cin >> b;
    
    // 0 преобразуется в false в C++
    // соответственно, если b = 0, переходим к блоку else
    if(b)  
    {
        // аналогично деление без остатка означает, что a % b == 0
        if(a % b)
        {
            std::cout << "a and not devisible" << std::endl;
        }
        else
        {
            std::cout << "a and b devisible" << std::endl;
        }
    }
    else
    {
        std::cout << "Panic! b = 0! Bad data!" << std::endl;
    }
    
}
Упражнение 3

Напишите программу, в которую пользователь вводит число от 1 до 100. Используйте вложенный оператор if, чтобы сначала убедиться, что число находится в пределах этого диапазона. А затем при выполнении этого условия определите, является ли введенное число больше, меньше или равным 50. И выведите результат на консоль.

Решение
#include <iostream>
 
int main()
{
    double number {};

    std::cout << "Enter a number between 1 and 100: ";
    std::cin >> number;

    if (number >= 1 && number <= 100)
    {
        if (number > 50)
            std::cout << "number is greater than 50" << std::endl;
        else if (number < 50)
            std::cout << "number is less than 50" << std::endl;
        else
            std::cout << "number = 50" << std::endl;
    }
    else
    {
        std::cout << "The number is outside the range [1, 100]" << std::endl;
    }
}

Консольный вывод:

c:\cpp>g++ hello.cpp -o hello & hello
Enter a number between 1 and 100: 34.5
number is less than 50

c:\cpp>g++ hello.cpp -o hello & hello
Enter a number between 1 and 100: 50
number = 50

c:\cpp>g++ hello.cpp -o hello & hello
Enter a number between 1 and 100: 51
number is greater than 50

c:\cpp>g++ hello.cpp -o hello & hello
Enter a number between 1 and 100: 190
The number is outside the range [1, 100]
Упражнение 4

Напишите программу, в которой вводятся два числа, и программа проверят, больше ли первое число второму или меньше или они равны. Для проверки используйте тренарный оператор.

Решение
#include <iostream>
 
int main()
{
    int a {};
    int b {};
    std::cout << "Enter a first number: ";
    std::cin >> a;
    std::cout << "Enter a second number: ";
    std::cin >> b;
    std::cout << (a > b ? "a > b": (a < b?"a < b": "a=b")) << std::endl;
}

Консольный вывод:

c:\cpp>g++ hello.cpp -o hello & hello
Enter a first number: 20
Enter a second number: 10
a > b

c:\cpp>g++ hello.cpp -o hello & hello
Enter a first number: 3
Enter a second number: 10
a < b

c:\cpp>g++ hello.cpp -o hello & hello
Enter a first number: 4
Enter a second number: 4
a=b
Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850