Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
JaneKing
0 / 0 / 0
Регистрация: 21.06.2014
Сообщений: 2
#1

Как вычислить арифметическое выражение? - C++

21.06.2014, 12:55. Просмотров 442. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста решить задачу на экзамен!
Вычисление арифметического выражения.
Арифметическое выражение вводится в виде строки вида АорВ,
Где А, В – целые числа , а ор – знак арифметической операции +, -, *, /. Написать программу вычисляющую значение выражения.Обеспечить проверку корректности ввода выражения.
Мне нужно ее доделать,чтобы вычислить значение выражения.
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
#include<stdio.h>
#include<conio.h>
#include<string.h>
main(){
       char q[80], l[4]={'-','+','*','/'}, m[10]={'0','1','2','3','4','5','6','7','8','9'};
       int i,t,z,x,y,f=1,r=1;
       printf ("Vvedite arifmeticheskoe virajenie:\n");
       gets(q);
      
       for (t=0; t<=3; t++){
       i=0;
       while (q[i]!='\0'){
       if (q[i]==l[t]) {z=i;}
       i++;}}
       printf("Pozicija znaka: %d\n",z);
      
       i=0;
       while (q[i]!=q[z]){
       for(t=0; t<=10; t++){
       if (q[i]==m[t]) {x=1; t=11;}
       else {x=0;}}
       f=f*x;
       i++;}
      
       i=z+1;
       while (q[i]!='\0'){
       for(t=0; t<=10; t++){
       if (q[i]==m[t]) {y=1; t=11;}
       else {y=0;}}
       r=r*y;
       i++;}
      
       if ((f==1)&&(r==1)&&(q[0]!='0')&&(q[z+1]!='0')) {printf ("Virajenie korrektno.\n");}
       else {printf ("Virajenie nekorrektno.\n");}
getch();}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2014, 12:55     Как вычислить арифметическое выражение?
Посмотрите здесь:

Арифметическое выражение C++
C++ Как записать арифметическое выражение
C++ Вычислить арифметическое выражение
C++ [C++] Вычислить арифметическое выражение
Преобразовать в числа и вычислить арифметическое выражение C++
C++ Вычислить арифметическое выражение
C++ Строки С++ (вычислить арифметическое выражение в данной строке)
C++ вычислить арифметическое выражение
Вычислить арифметическое выражение, заданное в формате строки C++
C++ Арифметическое выражение
Вычислить арифметическое выражение и вывести результат на экран C++
C++ Вычислить арифметическое выражение

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BatonPro
30 / 30 / 24
Регистрация: 21.06.2014
Сообщений: 81
21.06.2014, 13:24     Как вычислить арифметическое выражение? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include <stdlib.h>
void main(){
       char q[80], l[4]={'-','+','*','/'}, m[10]={'0','1','2','3','4','5','6','7','8','9'};
       int i,t,z,x,y,f=1,r=1;
       char operation;
       int A,B,result;
       printf ("Vvedite arifmeticheskoe virajenie:\n");
       gets(q);
      
       for (t=0; t<=3; t++){
       i=0;
       while (q[i]!='\0'){
       if (q[i]==l[t]) {z=i;}
       i++;}}
       printf("Pozicija znaka: %d\n",z);
      
       i=0;
       while (q[i]!=q[z]){
       for(t=0; t<=10; t++){
       if (q[i]==m[t]) {x=1; t=11;}
       else {x=0;}}
       f=f*x;
       i++;}
      
       i=z+1;
       while (q[i]!='\0'){
       for(t=0; t<=10; t++){
       if (q[i]==m[t]) {y=1; t=11;}
       else {y=0;}}
       r=r*y;
       i++;}
      
       if ((f==1)&&(r==1)&&(q[0]!='0')&&(q[z+1]!='0')) 
       {
           printf ("Virajenie korrektno.\n");
           operation=q[z];
           q[z]='\0';
           A=atoi(q);
           B=atoi(q+z+1);
          if(operation=='+')
          {result=A+B;}
          if(operation=='*')
          {result=A*B;}
          if(operation=='-')
          {result=A-B;}
          if(operation=='/')
          {result=A/B;}
           printf("\n Result= %d",result);
       }
       else {printf ("Virajenie nekorrektno.\n");}
getch();}
JaneKing
0 / 0 / 0
Регистрация: 21.06.2014
Сообщений: 2
21.06.2014, 14:34  [ТС]     Как вычислить арифметическое выражение? #3
Спасибо большое!Программа идет.Можно задать вопрос что за функция atoi.
BatonPro
30 / 30 / 24
Регистрация: 21.06.2014
Сообщений: 81
21.06.2014, 14:43     Как вычислить арифметическое выражение? #4
Цитата Сообщение от JaneKing Посмотреть сообщение
Спасибо большое!Программа идет.Можно задать вопрос что за функция atoi.
Преобразует строку в число.
Yandex
Объявления
21.06.2014, 14:43     Как вычислить арифметическое выражение?
Ответ Создать тему
Опции темы

Текущее время: 23:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru