Написать функцию для поразрядного умножения длинных целых чисел, представленных строками символов, и тестирующ - C (СИ)
Формулировка задачи:
Задание :"Написать функцию для поразрядного умножения длинных целых чисел, представленных строками символов, и тестирующую программу к ней."
Написать программу разделяя исходный код на 3 файла: в файле main.cpp располагается управляющая функция main, в файле my_lab.cpp (название может отличаться) ― функции в соответствии с заданием (ввод/вывод исходных данных, основная логика задания и т.п.), а в файле my_lab.h ― прототипы функций из my_lab.cpp.
Решение задачи: «Написать функцию для поразрядного умножения длинных целых чисел, представленных строками символов, и тестирующ»
textual
Листинг программы
#include "math_test.h" int main() { char input[n], output[n], input1[n], incr[n] = "1", wspom[n]; for (int i = 0; i < n; i++) { input[i] = '\0'; output[i] = '\0'; input1[i] = '\0'; wspom[i] = '\0'; } puts(" entr number"); while (!zap(input)) puts("repit"); for (int i = 0; i < n; i++) if (input[i] < '0' || input[i] >'9') { for (int g = i; g < n; g++) input[g] = '\0'; break; } if (input[0] == '\0') { puts("no first multiplier"); return 0; } if (input[0] == '0' && input[1] == '\0') { puts("0"); return 0; } puts(" entr second multiplier"); while (!zap(input1)) puts(" repit step"); for (int i = 0; i < n; i++) if (input1[i] < '0' || input1[i] >'9') { for (int g = i; g < n; g++) input1[g] = '\0'; break; } if (input1[0] == '\0') { puts("no second multiplier"); return 0; } if (input1[0] == '0' && input1[1] == '\0') { puts("0"); return 0; } if (input1[0] == '1' && input1[1] == '\0') { puts(input); return 0; } zap(input, output); zap(incr, wspom); while (!strcmp(wspom, input1)) { add(output, input); add(wspom, incr); } puts(output); return 0; }
Объяснение кода листинга программы
В этом коде представлена функция для поразрядного умножения длинных целых чисел, представленных строками символов. Список действий:
- Ввод первого множителя:
- Переменная
input
используется для хранения введенного числа. - Переменная
output
используется для промежуточных вычислений. - Переменная
input1
используется для хранения второго множителя. - Переменная
incr
используется для хранения увеличения второго множителя. - Переменная
wspom
используется для хранения промежуточного результата.
- Переменная
- Проверка введенных данных:
- Если первый множитель пустой, выводится сообщение об ошибке и возвращается 0.
- Если второй множитель пустой, выводится сообщение об ошибке и возвращается 0.
- Очистка входных данных:
- Если введенные данные некорректны (содержат символы, которые не являются цифрами), выводится сообщение об ошибке и возвращается 0.
- Вычисление произведения:
- Используется функция
add
для поразрядного умножения чисел. - Используется функция
zap
для очистки промежуточных переменных. - Используется цикл
while
для повторения вычислений до тех пор, пока второй множитель не изменится. - Результат выводится на экран.
- Используется функция
- Завершение программы:
- Возвращается 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д