Загрузка данных


// 3

#include <stdio.h>  // Подключаем scanf и printf для ввода и вывода

int main(void)  // Главная функция: программа начинает работу отсюда
{
    int a;  // Переменная для первого целого числа
    int b;  // Переменная для второго целого числа
    char c;  // Переменная для проверки лишних символов после чисел

    if (scanf("%d %d", &a, &b) != 2 || b == 0)  // Читаем два int и проверяем деление на ноль
    {
        printf("n/a");  // При неправильном вводе или b == 0 выводим сообщение об ошибке
        return 0;  // Завершаем программу
    }

    while (scanf("%c", &c) == 1)  // Считываем все символы, оставшиеся после двух чисел
    {
        if (c != ' ' && c != '\n' && c != '\t')  // Разрешаем после чисел только пробелы, табуляции и перенос строки
        {
            printf("n/a");  // При обнаружении лишнего символа выводим ошибку
            return 0;  // Завершаем программу, не выполняя вычисления
        }
    }

    printf("%d %d %d %d", a + b, a - b, a * b, a / b);  // Печатаем сумму, разность, произведение и целочисленное частное
    return 0;  // Успешно завершаем программу
}

// 4

#include <stdio.h>  // Подключаем функции ввода и вывода: scanf и printf

int max(int a, int b)  // Объявляем функцию, которая возвращает большее из двух чисел
{
    if (a >= b)  // Проверяем: a больше либо равно b
    {
        return a;  // Возвращаем a, в том числе когда числа равны
    }
    return b;  // Если a меньше b, возвращаем b
}

int main(void)  // Точка входа: выполнение программы начинается отсюда
{
    int a;  // Объявляем переменную для первого целого числа
    int b;  // Объявляем переменную для второго целого числа
    char c;  // Объявляем переменную для проверки лишних символов после чисел

    if (scanf("%d %d", &a, &b) != 2)  // Считываем два целых; при ошибке scanf вернёт не 2
    {
        printf("n/a");  // Выводим сообщение об ошибке
        return 0;  // Нормально завершаем программу
    }

    while (scanf("%c", &c) == 1)  // Считываем все символы, оставшиеся после двух чисел
    {
        if (c != ' ' && c != '\n' && c != '\t')  // Разрешаем только пробел, перенос строки и табуляцию
        {
            printf("n/a");  // Если найден лишний символ, сообщаем об ошибке
            return 0;  // Завершаем программу
        }
    }

    printf("%d", max(a, b));  // Вызываем max и печатаем максимальное число без пробела в конце
    return 0;  // Завершаем программу успешно
}

// 5

#include <stdio.h>  // Подключаем scanf и printf
#include <math.h>  // Подключаем cbrt и pow для математических вычислений

int main(void)  // Главная функция программы
{
    double x;  // Переменная для введённого вещественного числа
    double y;  // Переменная для результата вычисления функции
    char c;  // Переменная для проверки лишних символов после числа

    if (scanf("%lf", &x) != 1)  // Считываем одно вещественное число и проверяем успешность ввода
    {
        printf("n/a");  // При некорректном вводе выводим сообщение об ошибке
        return 0;  // Завершаем программу
    }

    while (scanf("%c", &c) == 1)  // Проверяем символы, оставшиеся после введённого числа
    {
        if (c != ' ' && c != '\n' && c != '\t')  // Разрешаем только пробел, перевод строки и табуляцию
        {
            printf("n/a");  // При лишнем тексте выводим сообщение об ошибке
            return 0;  // Завершаем программу
        }
    }

    if (x == 0 || x <= -10)  // Отсекаем деление на ноль и недопустимое основание 10 + x для pow
    {
        printf("n/a");  // Выводим сообщение об ошибке
        return 0;  // Завершаем программу
    }

    y = 7e-3 * x * x * x * x  // Вычисляем слагаемое 0.007 × x⁴
        + ((22.8 * cbrt(x) - 1e3) * x + 3) / (x * x / 2)  // Вычисляем дробную часть формулы
        - x * pow(10 + x, 2 / x)  // Вычисляем x × (10 + x)^(2/x)
        - 1.01;  // Вычитаем последнее слагаемое

    printf("%.1f", y);  // Выводим результат ровно с одной цифрой после запятой
    return 0;  // Успешно завершаем программу
}

// 6

#include <stdio.h>  // Подключаем printf

int main(void)  // Главная функция программы
{
    double a = 0.1 + 0.2;  // Вычисляем значение, которое математически равно 0.3
    double b = 0.3;  // Задаём значение для сравнения
    const double eps = 1e-6;  // Задаём допустимую погрешность сравнения

    if (a - b < eps && b - a < eps)  // Проверяем, что модуль разницы чисел меньше eps
    {
        printf("OK!");  // Числа считаются равными с учётом погрешности
    }
    else  // Выполняется, если разница больше допустимой погрешности
    {
        printf("FAIL!");  // Сообщаем, что числа заметно отличаются
    }

    return 0;  // Завершаем программу
}