Получить два целых числа и найти их произведение, не используя операцию умножения - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Напишите программу, которая получает два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными Пример: Введите два числа: 10 -15 10*(-15)=-150

Решение задачи: «Получить два целых числа и найти их произведение, не используя операцию умножения»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    int a, b;
    scanf("%d%d", &a, &b);
    int sign = (a < 0) == (b < 0) ? 1 : -1;
    a = abs(a);
    b = abs(b);
    int* min = a < b ? &a : &b;
    int* max = a < b ? &b : &a;
    int sum;
    for (sum = 0; *min != 0; sum += *max, (*min)--);
    printf("%d\n", sum * sign);
    return 0;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Объявляем переменные a и b типа int
  3. Считываем значения a и b с помощью функции scanf
  4. Находим знак числа, используя оператор сравнения и логическое преобразование результатов
  5. Преобразуем значения a и b в положительные числа с помощью функции abs
  6. Получаем указатель на меньшее число из двух, используя оператор сравнения и оператор инкремента
  7. Получаем указатель на большее число из двух, используя оператор сравнения и оператор инкремента
  8. Инициализируем переменную sum с помощью цикла for и получаем произведение значений a и b
  9. Возвращаем произведение значений a и b, умноженное на знак числа, с помощью функции printf
  10. Завершаем программу и возвращаем 0

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы