Напишите программу которая работает как простейший калькулятор - 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];
- }
Объяснение кода листинга программы
- В функции
main
создается массивt
размером 2 для хранения введенных пользователем чисел. - Затем программа предлагает пользователю выбрать операцию для выполнения, выводя на экран меню.
- После получения выбора пользователя программа вызывает соответствующую функцию для выполнения операции.
- В функции
func_sloghenie
происходит сложение двух чисел и результат выводится на экран. - В функции
func_delenie
происходит деление одного числа на другое и результат выводится на экран. - В функции
func_delenieapp
происходит проверка, является ли первое число больше второго, и в зависимости от этого происходит деление или второго числа на первое. - В функции
func_vichitanie
происходит вычитание двух чисел и результат выводится на экран. - В функции
func_vichitanieapp
происходит проверка, является ли первое число больше второго, и в зависимости от этого происходит вычитание или второго числа из первого. - В функции
func_ymnoghenie
происходит умножение двух чисел и результат выводится на экран. - В функции
func_zaprosc
пользователю предлагается ввести два числа, которые затем сохраняются в массивеt
. - Затем программа возвращает третье число, которое было введено пользователем.
- В конце программы возвращается 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д