Арифметические действия (длинная арифметика) - 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;
}

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

  1. Ввод первых двух чисел, введенных пользователем, с помощью функции cin.
  2. Проверка длины введенных чисел с помощью функции strlen.
  3. Если длина числа больше 77 символов, программа выводит сообщение об ошибке и возвращает пользователя к шагу 1.
  4. Ввод знака арифметического действия с помощью функции cin.
  5. Использование оператора switch для выполнения выбранного арифметического действия.
  6. Вывод результата с помощью функции cout.
  7. Проверка, является ли результат больше 77 цифр, с помощью функции pow и оператора сравнения >=.
  8. Вывод сообщения, если результат больше 77 цифр, с помощью функции cout.
  9. Ожидание нажатия клавиши пользователем с помощью функции system.
  10. Возврат значения 0, чтобы указать, что программа успешно завершилась.

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


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

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

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