Арифметические действия (длинная арифметика) - C (СИ)
Формулировка задачи:
Хай програмеры!!!!
кто может помогите мне с таким заданием:
Написать программу, которая выполняет указанные арифметические действия над двумя целыми неотрицательными числами, которые заданы в виде массива символов. Массив имеет следующее определение:
действия: деление, умножение, сложение и вычитание (выбор выполняемого действия осуществляет пользователь)
#define NLen 77 typedef char NumberType[NLen];
Решение задачи: «Арифметические действия (длинная арифметика)»
textual
Листинг программы
#include <iostream.h> #include <Windows.h> #include <iomanip> #include <math.h> #define NLen 77 typedef char NumberType[NLen]; int a, b, i; NumberType c_a, c_b; char c; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); vvod1: cout<<"Введите первое число\n"; cin>>c_a; if(strlen(c_a)>77) { cout<<"Число должно быть не более 77 цифр\n"; goto vvod1; } vvod2: cout<<"Введите второе число\n"; cin>>c_b; if(strlen(c_b)>77) { cout<<"Число должно быть не более 77 цифр\n"; goto vvod2; } a=b=0; for(i=0; i<strlen(c_a); i++) { a=a*10+(int)c_a[i]-48; } for(i=0; i<strlen(c_b); i++) { b=b*10+(int)c_b[i]-48; } cout<<"Введите знак '+', '-', '*' или '/'"<<endl; cin>>c; switch(c) { case '+': a+=b; break; case '-': a-=b; break; case '*': a*=b; break; case '/': a/=b; break; default: cout<<"Нераспознанный знак арифметического действия"<<endl; break; } cout<<"Результат: "<<a<<endl; if(a>=pow(10,77)) cout<<"Результат более 77 цифр"<<endl; system("pause"); return 0; }
Объяснение кода листинга программы
- Ввод первых двух чисел, введенных пользователем, с помощью функции
cin
. - Проверка длины введенных чисел с помощью функции
strlen
. - Если длина числа больше 77 символов, программа выводит сообщение об ошибке и возвращает пользователя к шагу 1.
- Ввод знака арифметического действия с помощью функции
cin
. - Использование оператора
switch
для выполнения выбранного арифметического действия. - Вывод результата с помощью функции
cout
. - Проверка, является ли результат больше 77 цифр, с помощью функции
pow
и оператора сравнения>=
. - Вывод сообщения, если результат больше 77 цифр, с помощью функции
cout
. - Ожидание нажатия клавиши пользователем с помощью функции
system
. - Возврат значения 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д