Умножение и деление чисел в C

CBeginner
Практиковаться сейчас

Введение

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

Во-первых, вы узнаете, как объявлять переменные и вводить значения с помощью пользователя. Вы создадите простую программу, которая позволит пользователям ввести два числа, которые затем будут использованы для операций умножения и деления.

Далее, вы расширите программу для выполнения фактических вычислений умножения и деления, используя введённые значения. Программа отобразит результаты этих операций и также корректно обработает случай деления на ноль.

Объявление переменных и ввод значений

В этом шаге вы научитесь объявлять переменные и вводить значения для выполнения арифметических операций в программировании на языке C. Мы создадим простую программу, которая позволит пользователям ввести два числа для умножения и деления.

Сначала создадим новый файл C в каталоге ~/project:

cd ~/project
nano arithmetic_operations.c

Теперь введите следующий код:

#include <stdio.h>

int main() {
    // Объявить переменные для хранения введённых чисел
    float num1, num2;

    // Запросить у пользователя первое число
    printf("Enter the first number: ");
    scanf("%f", &num1);

    // Запросить у пользователя второе число
    printf("Enter the second number: ");
    scanf("%f", &num2);

    // Вывести введённые числа
    printf("First number: %.2f\n", num1);
    printf("Second number: %.2f\n", num2);

    return 0;
}

Давайте разберём код:

  • Мы используем тип данных float, чтобы позволить вводить десятичные числа.
  • printf() используется для отображения запросов пользователю.
  • scanf() считывает ввод пользователя и сохраняет его в переменные.
  • %.2f форматирует вывод, отображая два знака после запятой.

Компилируем программу:

gcc arithmetic_operations.c -o arithmetic_operations

Запустите программу и введите некоторые примерные числа:

./arithmetic_operations

Пример вывода:

Enter the first number: 10.5
Enter the second number: 3.2
First number: 10.50
Second number: 3.20

Выполнение умножения и деления

В этом шаге вы расширите предыдущую программу для выполнения операций умножения и деления, используя введённые значения.

Откройте существующий файл arithmetic_operations.c:

cd ~/project
nano arithmetic_operations.c

Обновите код с операциями умножения и деления:

#include <stdio.h>

int main() {
    // Объявить переменные для хранения введённых чисел и результатов
    float num1, num2, multiply_result, divide_result;

    // Запросить у пользователя первое число
    printf("Enter the first number: ");
    scanf("%f", &num1);

    // Запросить у пользователя второе число
    printf("Enter the second number: ");
    scanf("%f", &num2);

    // Выполнить умножение
    multiply_result = num1 * num2;
    printf("Умножение: %.2f * %.2f = %.2f\n", num1, num2, multiply_result);

    // Выполнить деление
    divide_result = num1 / num2;
    printf("Деление: %.2f / %.2f = %.2f\n", num1, num2, divide_result);

    return 0;
}

Скомпилируйте обновлённую программу:

gcc arithmetic_operations.c -o arithmetic_operations

Запустите программу и протестируйте умножение и деление:

./arithmetic_operations

Пример вывода:

Enter the first number: 10.5
Enter the second number: 3.2
Умножение: 10.50 * 3.20 = 33.60
Деление: 10.50 / 3.20 = 3.28

Ключевые моменты:

  • Оператор * выполняет умножение
  • Оператор / выполняет деление
  • Результаты хранятся в отдельных переменных
  • %.2f форматирует вывод, отображая два знака после запятой

Обработка деления на ноль

В этом шаге вы узнаете, как обрабатывать деление на ноль, что является распространённой ошибкой в арифметических операциях, которая может привести к аварийному завершению программы.

Откройте существующий файл arithmetic_operations.c:

cd ~/project
nano arithmetic_operations.c

Обновите код для обработки деления на ноль:

#include <stdio.h>

int main() {
    // Объявить переменные для хранения введённых чисел и результатов
    float num1, num2, multiply_result, divide_result;

    // Запросить у пользователя первое число
    printf("Enter the first number: ");
    scanf("%f", &num1);

    // Запросить у пользователя второе число
    printf("Enter the second number: ");
    scanf("%f", &num2);

    // Выполнить умножение
    multiply_result = num1 * num2;
    printf("Умножение: %.2f * %.2f = %.2f\n", num1, num2, multiply_result);

    // Проверить деление на ноль перед выполнением деления
    if (num2 != 0) {
        divide_result = num1 / num2;
        printf("Деление: %.2f / %.2f = %.2f\n", num1, num2, divide_result);
    } else {
        printf("Ошибка: Деление на ноль запрещено!\n");
    }

    return 0;
}

Скомпилируйте обновлённую программу:

gcc arithmetic_operations.c -o arithmetic_operations

Запустите программу и протестируйте различные сценарии:

Тестирование с ненулевым делителем:

./arithmetic_operations

Пример вывода (ненулевой делитель):

Enter the first number: 10.5
Enter the second number: 3.2
Умножение: 10.50 * 3.20 = 33.60
Деление: 10.50 / 3.20 = 3.28

Тестирование с нулём в качестве делителя:

./arithmetic_operations

Пример вывода (нулевой делитель):

Enter the first number: 10.5
Enter the second number: 0
Умножение: 10.50 * 0.00 = 0.00
Ошибка: Деление на ноль запрещено!

Ключевые моменты:

  • Используйте оператор if, чтобы проверить, равен ли делитель нулю.
  • Выведите понятное сообщение об ошибке.
  • Предотвратите аварийное завершение программы, обработав случай деления на ноль.

Резюме

В этом лабораторном практикуме вы изучили, как объявлять переменные и вводить значения для выполнения арифметических операций в программировании на языке C. Вы создали простую программу, которая позволяет пользователям вводить два числа для умножения и деления. Вы также изучили, как выполнять операции умножения и деления, используя введённые значения, и как корректно обрабатывать деление на ноль, проверяя делитель на ноль перед выполнением операции деления.

Основные моменты, изученные в этом лабораторном практикуме:

  • Объявление переменных для хранения введённых чисел и результатов
  • Использование printf() для отображения запросов и scanf() для чтения пользовательского ввода
  • Выполнение операций умножения и деления над введёнными значениями
  • Обработка ошибки деления на ноль для предотвращения аварийного завершения программы