Создание простейшего калькулятора с базовым функционалом - C (СИ)

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

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

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

НО

также он должен предлагать нам выбор точности числа, которое выйдет в итоге. Препод желает сама выбирать сколько знаков после запятой хочет видеть. А также после выполнения действия программа не должна закрываться, а предлагать продолжить. Я - первокурсница, программирования еще толком и не было, так что трудностей много. И да, препод ничего не говорит, помогает только тем, кто на стороне Паскаля. Кто-то может помочь с этим?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{ int n;
  printf("1 - summa\n2 - proizvedenie\n3 - raznost\n4 - delenie\n5 - kvadratny koren\n6 - vozvedenie v stepen 2\n");
  printf("vyberite neobhodimoe deystvie\n");
  scanf("%d",&n);
  switch(n)
    { case 1:
        { float a,b,S;
          printf("vvedite chisla a, b\n");
          scanf("%f%f",&a,&b);
          S = a+b;
          printf("%.2f",S);
          break;
        }
      case 2:
          { float a,b,P;
            printf("vvedite chisla a, b\n");
            scanf("%f%f",&a,&b);
            P = a*b;
            printf("%.2f",P);
            break;
          }
      case 3:
        {   float a,b,R;
            printf("vvedite chislo ymenshaemoe\n");
            scanf("%f",&a);
            printf("vvedite chislo vuchitaemoe\n");
            scanf("%f",&b);
            R = a-b;
            printf("%.2f",R);
            break;
        }
      case 4:
        {  float a,b,D;
           printf("vvedite delimoe a\n");
           scanf("%f",&a);
           printf("vvedite delitel b\n");
           scanf("%f",&b);
           if (b!=0) D = a/b;
           else printf("nekorrektnoe chislo\n");
           printf("%.2f",D);
           break;
        }
      case 5:
        {  float a,Q;
           printf("vvedite chislo a\n");
           scanf("%f",&a);
           if (a>0) Q = pow(a,0.5);
           else printf("nekorrektnoe chislo\n");
           printf("%.2f",Q);
           break;
        }
      case 6:
        {  float a,St;
           printf("vvedite chislo a\n");
           scanf("%f",&a);
           St = pow(a,2);
           printf("%.2f",St);
           break;
        }
    }
   getch();
}

Решение задачи: «Создание простейшего калькулятора с базовым функционалом»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
int
main()
{
    while(1)
    {
        float arg1, arg2;
        int precision = 2; /* точность */
        int choice = 0;
        
        printf("1 - sum\n2 - mul\n3 - sub\n4 - div\n"
               "5 - sqrt\n6 - pow2\n0 - exit");
        printf("vyberite neobhodimoe deystvie\n");
        scanf("%d", &choice);
        if(choice == 0)
            break;
        printf("Choose precision: ");
        scanf("%d", &precision);
        switch(choice)
        {
        case 1:
            printf("vvedite chisla\n");
            scanf("%f%f", &arg1, &arg2);
            printf("%.*f\n", precision, arg1 + arg2);
            break;
        case 2:
            printf("vvedite chisla\n");
            scanf("%f%f", &arg1, &arg2);
            printf("%.*f\n", precision, arg1 * arg2);
            break;
        case 3:
            printf("vvedite chislo ymenshaemoe\n");
            scanf("%f", &arg1);
            printf("vvedite chislo vuchitaemoe\n");
            scanf("%f", &arg2);
            printf("%.*f\n", precision, arg1 - arg2);
            break;
        case 4:
            printf("vvedite delimoe a\n");
            scanf("%f", &arg1);
            printf("vvedite delitel b\n");
            scanf("%f", &arg2);
            if(arg2 == 0)
            {
                printf("nekorrektnoe chislo\n");
                break;
            }
            printf("%.*f\n", precision, arg1 / arg2);
            break;
        case 5:
            printf("vvedite chislo a\n");
            scanf("%f", &arg1);
            if(arg1 < 0)
            {
                printf("nekorrektnoe chislo\n");
                break;
            }
            printf("%.*f\n", precision, sqrt(arg1));
            break;
        case 6:
            printf("vvedite chislo a\n");
            scanf("%f", &arg1);
            printf("%.*f\n", precision, pow(arg1, 2.0));
            break;
        }
    }
}

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

  1. Ввод чисел с клавиатуры
  2. Вывод результатов вычислений с заданной точностью
  3. Использование операторов switch для выбора операции в зависимости от введенного пользователем числа
  4. Использование функций scanf и printf для взаимодействия с пользователем
  5. Проверка корректности введенных пользователем чисел (например, деление на ноль)
  6. Использование математических функций (sqrt, pow) для выполнения операций
  7. Возможность выбора точности вычислений
  8. Возможность выхода из программы с помощью команды 0

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


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

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

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