본문내용
ence(stack_top()) >= precedence(*ino)){
*pos++ = pop();
*pos++ = ' ';
}
push(*ino);
ino++;
}
else if(*ino >= '0' && *ino <= '9') // 피연산자이면 스택에 남은 연산자를 모두 팝
{
do{
*pos++ = *ino++;
} while(*ino >='0' && *ino <= '9');
*pos++ = ' ';
}
else ino++;
}
while(!stack_empty())
{
*pos++ = pop();
*pos++ = ' ';
}
pos--;
*pos = 0;
}
int calc(char *p) // 후위표기법 수식을 연산
{
int i;
stack_start();
while(*p){
if(*p >= '0' && *p<='9') // 피연산자는 푸시
{
i = 0;
do{
i = i*10 + *p - '0';
p++;
} while(*p >= '0' && *p <= '9');
push(i);
}
else if(*p == '+') // 연산자이면 팝을 두번해서 계산한다 그후에 그 결과를 다시 푸시
{
push(pop() + pop());
p++;
}
else if(*p == '*'){
push(pop() * pop());
p++;
}
else if(*p == '-'){
i = pop();
push(pop() - i);
p++;
}
else if(*p == '/'){
i = pop();
push(pop() / i);
p++;
}
else p++;
}
return pop(); // 연산결과
}
*pos++ = pop();
*pos++ = ' ';
}
push(*ino);
ino++;
}
else if(*ino >= '0' && *ino <= '9') // 피연산자이면 스택에 남은 연산자를 모두 팝
{
do{
*pos++ = *ino++;
} while(*ino >='0' && *ino <= '9');
*pos++ = ' ';
}
else ino++;
}
while(!stack_empty())
{
*pos++ = pop();
*pos++ = ' ';
}
pos--;
*pos = 0;
}
int calc(char *p) // 후위표기법 수식을 연산
{
int i;
stack_start();
while(*p){
if(*p >= '0' && *p<='9') // 피연산자는 푸시
{
i = 0;
do{
i = i*10 + *p - '0';
p++;
} while(*p >= '0' && *p <= '9');
push(i);
}
else if(*p == '+') // 연산자이면 팝을 두번해서 계산한다 그후에 그 결과를 다시 푸시
{
push(pop() + pop());
p++;
}
else if(*p == '*'){
push(pop() * pop());
p++;
}
else if(*p == '-'){
i = pop();
push(pop() - i);
p++;
}
else if(*p == '/'){
i = pop();
push(pop() / i);
p++;
}
else p++;
}
return pop(); // 연산결과
}
추천자료
- Visual C++6.0으로 배우는 C언어 제1부-변수와 연산자(1/7)
- C++ 고급C언어에 관한 이해
- 프로그램 언어개념(C 와 C++ 차이점)
- [C++]C언어를 이용한 계산기 소스 및 실행파일
- C언어의 원리, C언어의 장단점, C언어의 시작, C++의 추가된 사항, C++의 데이터선언, C++의 ...
- C언어의 역사, C언어의 특징, C언어의 프로그래밍기법, C언어의 시작하기, C++의 개선사항과 ...
- C/ C++ 프로그래밍 요약 레포트
- 16자리까지 계산 가능한 계산기를 c나 c++을 이용해서 코딩하시오
- C,C++ 자료구조를 이용한 성적입력프로그램
- [C][C++][콘솔] 3 strike Game (야구게임)
소개글