![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 14.12.2011
Сообщений: 3
|
![]()
//ето чтото похожее на калькулятор.Нужно найти ошибки и сказать
//почему он не пашет #include <iostream> #include <stdlib.h> #include <string> #include <math.h> #define EMPTY 'e' #define ERROR 'r' #define END 'x' double result=0,diget,t; using namespace std; void main(){ setlocale(LC_ALL,"Ukrainian"); char string[255],history[255]; char oper=EMPTY; history[0]='\0'; cout<<"Введіть числа і знак(+,-,*,/,%,^).\n"; while (1) {cin>>(string); strcat(history,string); diget=atof(string); if (diget==0){ if(strlen(string)==1) oper=string[0]; else if(strcmp(string,"cos")==0) result=cos(result); else if(strcmp(string,"sin")==0) result=sin(result); else if(strcmp(string,"tg")==0) result=tan(result); else if(strcmp(string,"ctg")==0) result=1/tan(result); else if(strcmp(string,"e")==0) result=exp(result); else{cout<<"Wrong function\n"; history[strlen(history)-strlen(string)]='\0'; } if (oper=='='){ cout<<history<<result<<endl; history[0]='\0'; oper=EMPTY;} if(oper==END) exit(1);} else if(oper==EMPTY) result=diget; else { switch(oper){ case '+': result=result+diget; oper=EMPTY;break; case '-': result=result-diget; oper=EMPTY;break; case '*': result=result*diget; oper=EMPTY;break; case '/': if(diget==0)cout<<"На нуль ділити не можна"; else{result=result+diget; oper=EMPTY;break; case '%': result=(int)result % (int)diget; oper=EMPTY;break; case '^': result=pow(result,diget); oper=EMPTY;break; case 'x': exit(1); case '=': break; default: t=ERROR; history[strlen(history)-strlen(string)-1]='\0';oper=EMPTY;} if (t==ERROR) cout<<"Неправильний знак\n";} }}} Последний раз редактировалось vanua2; 03.01.2012 в 23:11. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Среда разработки Visual C (альтернатива Visual Studio) | plyeh | Visual C++ | 5 | 25.06.2010 16:27 |
Visual Studio Standard 2008 против Visual Studio Express 2008. Стоит ли покупать? | Casper-SC | Софт | 4 | 31.12.2009 11:46 |
VISUAL STUDIO 2008 defaul language - как переключить в VISUAL STUDIO 2008 язык программирования, использ | Эйнж | Общие вопросы C/C++ | 0 | 27.12.2009 20:39 |
как среда или калькулятор вычесляет синус? | Iceman | Софт | 13 | 06.05.2009 18:47 |
среда Visual studio 2008 и vs 6 | Roman | Visual C++ | 2 | 09.10.2008 10:17 |