Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
MONOMAKH
1

Калькулятор с сохранением промежуточного результата

05.09.2013, 07:39. Показов 2321. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно вопрос по одному из упражнений из книги Кочана по С. Вот сам текст упражнения:
Напишите программу, которая работает как простейший калькулятор. Программой должны распознаваться следующие операторы.
“-“, “+”, “*”, “/”, “S”, “E”
Оператор S используется для сохранения введенного числа в аккумуляторе.
Оператор Е используется для выхода из программы. Арифметические операции
выполняются с содержимым аккумулятора и числом, введенным пользователем.
Ниже приведены примеры, касающееся программы работы.
Начало вычислений
10 S { Сохранить в аккумуляторе число 10. )
- 10.000000 { Содержимое аккумулятора. }
2 / { разделить на 2. )
* 5.000000 { Содержимое аккумулятора. }
55 - { Вычесть 55 }
-50.000000
100.25 S { Сохранить в аккумуляторе число 100.25. }
= 100.250000
4 * { Умножить на 4. }
= 401.000000}
0 Е { Конец программы. }
= 401.000000
Конец вычислений.
Необходимо учесть деление на нуль и распознавание неправильно введенных
операторов.

Соответственно написал код, но при вводе символа почему то срывается в бесконечный loop, а при введении S или E вообще ничего не отображает(

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <conio.h>
 
int main(void)
{
    float accumulator, value;
    int operator, i;
 
    printf("Simple calculator\n");
    printf("Vvedite vashu cifru:\n");
    scanf("%f", &accumulator);
    while(i)
    {
    scanf("%f %c", &value, &operator);
    if(operator=='+' && operator=='-' && operator=='*' && operator=='/' && operator=='S'&& operator=='E')
            if(operator=='S')
                printf("=%.2f", accumulator);
            else if(operator=='E')
                printf("Vyhod iz programmy");
            else if(operator=='-')
                printf("=.2f", accumulator-value);
            else if(operator=='+')
                printf("=.2f", accumulator+value);
            else if(operator=='*')
                printf("=.2f", accumulator*value);
            else if(operator=='/')
                {
                    if(value==0)
                printf("Delit na nol nelzya");
                else
                    printf("=.2f", accumulator/value);
                }
 
    else
        printf("Neizvestnyi operator\n");
    }
_getch();
return 0;
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2013, 07:39
Ответы с готовыми решениями:

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

Хранение промежуточного результата
Как написать функцию нахождения максимального элемента, использующую параметр для хранения...

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

Таблица Шульте с сохранением результата в бд
прошу простейший код для таблицы 5*5,которая рандомно заполняется цифрами от 1 до 30 по нажатию...

0
05.09.2013, 07:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.09.2013, 07:39
Помогаю со студенческими работами здесь

Приведение void указателя к определенному типу с сохранением результата
Есть функция funс(void *pointer, char type) { ... } Нужно чтобы в данной функции этот...

Написать калькулятор на 4 действия (+, -, *, /) с сохранением памяти
написать калькулятор на 4 действия (+,-,*,/) с сохранением памяти Помогите с программой и...

Pandas, dataframe - добавление новых строк с сохранением результата прошлых расчетов
Здравствуйте спецы, помогите :'( Есть DataFrame: можно ли реализовать, чтобы при ручной смене...

Калькулятор с остановкой программы и обнулением результата
Была идея сделать калькулятор, который выполняет несколько действий, ожидая команду stop, после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru