Напишите программу которая работает как простейший калькулятор - C (СИ)

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

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

Напишите программу которая работает как простейший калькулятор.Программой должны распознаваться следующие операторы "+" "-" "*" "/" "S" "E". Оператор S используется для сохранения числа в аккумуляторе. Оператор E для выхода из программы. Арифметические операции выполняются с содержимым аккумулятора и числом,введенным пользователем. Не понимаю почему не работает в цикле.
#include <stdio.h>
 
int main(void){
   int number,number2;
   char oper;
    
   printf("Enter accum:\n");
   scanf("%i\n",&number);
    
   do{
   printf("enter a number and operator:\n");
   scanf("%i     %c\n",&number2,&oper);
   switch(oper){
     case '+':
     printf("%i",number+number2);
     break;
      
     case '-':
     printf("%i",number-number2);
     break;
      
     case '*':
     printf("%i",number*number2);
     break;
      
     case '/':
     if(number2==0)
     printf("Zero!");
     else
     printf("%i",number/number2);
     break;

     default:
     printf("Wrong operator");
     break;
     }
     }while(oper=='E');
     printf("Break");
      
     }

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

textual
Листинг программы
#include <stdio.h>
void func_sloghenie(float,float);
void func_delenie(float,float);
void func_delenieapp(float,float);
void func_vichitanie(float,float);
void func_vichitanieapp(float,float);
void func_ymnoghenie(float,float);
float func_zaprosc(float t[]);
int main ()
{
    float t[2];
    int q;
    itsone:
        printf("\n\n\n\nМЕНЮ:\n"
            "1: Умножение\n"
            "2: Деление\n"
            "3: Деление большего числа на меньшее\n"
            "4: Вычитание\n"
            "5: Вычитание из большего числа - меньшее\n"
            "6: Сложение\n"
            "7: Выход\n\n\n\n");
    while ((q=getchar())!=EOF)
    {
        switch(q)
        {
            case '1':
            func_zaprosc(t);
            func_ymnoghenie(t[0],t[1]);
            goto itsone;
            case '2':
            func_zaprosc(t);
            func_delenie(t[0],t[1]);
            goto itsone;
            case '3':
            func_zaprosc(t);
            func_delenieapp(t[0],t[1]);
            goto itsone;
            case '4':
            func_zaprosc(t);
            func_vichitanie(t[0],t[1]);
            goto itsone;
            case '5':
            func_zaprosc(t);
            func_vichitanieapp(t[0],t[1]);
            goto itsone;
            case '6':
            func_zaprosc(t);
            func_sloghenie(t[0],t[1]);
            goto itsone;
            case '7':
            return 0;
        }
    }
    return 0;
}
 
void func_sloghenie(float a,float b)
{
    printf("%f",a+b);
}
 
void func_delenie(float a,float b)
{
    printf("%f\n",a/b);
}
    
void func_delenieapp(float a,float b)
{
    a>b?printf("%f\n",a/b):printf("%f\n",b/a);
}
 
void func_vichitanie(float a,float b)
{
    printf ("%f\n",a-b);
}
 
void func_vichitanieapp(float a,float b)
{
    a>b?printf("%f\n",a-b):printf("%f\n",b-a);
}
 
void func_ymnoghenie(float a,float b)
{
    printf("%f",a*b);
}
 
float func_zaprosc(float t[])
{
    int l,j;
    for (l=1,j=0;l<=2 && j<2;l++,j++)
    {
    printf("\n\nВведите значение %d:\n\n",l);
    scanf("%f",&t[j]);
    }
    return t[2];
}

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

  1. В функции main создается массив t размером 2 для хранения введенных пользователем чисел.
  2. Затем программа предлагает пользователю выбрать операцию для выполнения, выводя на экран меню.
  3. После получения выбора пользователя программа вызывает соответствующую функцию для выполнения операции.
  4. В функции func_sloghenie происходит сложение двух чисел и результат выводится на экран.
  5. В функции func_delenie происходит деление одного числа на другое и результат выводится на экран.
  6. В функции func_delenieapp происходит проверка, является ли первое число больше второго, и в зависимости от этого происходит деление или второго числа на первое.
  7. В функции func_vichitanie происходит вычитание двух чисел и результат выводится на экран.
  8. В функции func_vichitanieapp происходит проверка, является ли первое число больше второго, и в зависимости от этого происходит вычитание или второго числа из первого.
  9. В функции func_ymnoghenie происходит умножение двух чисел и результат выводится на экран.
  10. В функции func_zaprosc пользователю предлагается ввести два числа, которые затем сохраняются в массиве t.
  11. Затем программа возвращает третье число, которое было введено пользователем.
  12. В конце программы возвращается 0, что означает успешное завершение работы программы.

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

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