九度OJ題目1101:計算表達式

題目1101:計算表達式

時間限制:1 秒

內存限制:32 兆

特殊判題:

題目描述:

對於一個不存在括號的表達式進行計算

輸入:

存在多種數據,每組數據一行,表達式不存在空格

輸出:

輸出結果

樣例輸入:
6/2+3+3*4
樣例輸出:
18
來源:
2010年上海交通大學計算機研究生機試真題
 
#include "stdio.h"

#define MAX 100

int stack[MAX];//定義數組
int tail;

int main(){
  int a;
  while(scanf("%d",&a)!=EOF){ //輸入數值
   tail=0;
   
  stack[0]=0;
   stack[++tail]=a;//入棧
   char ch1;
   while(scanf("%c",&ch1)!=EOF&&(ch1=='+'||ch1=='-'||ch1=='*'||ch1=='/')){ //輸入符號
                         scanf("%d",&a);        
    if(ch1=='+'){ //"+"
     stack[++tail]=a;
    }else if(ch1=='-'){ //"-"
     stack[++tail]=-1*a;
    }else if(ch1=='*'){ //"*"
     stack[tail]=stack[tail]*a;
    }else if(ch1=='/'){ //"/"
     stack[tail]=stack[tail]/a;
    }
    
  }
  for(int i=1;i<=tail;i++)
  stack[0]+=stack[i];
  printf("%d\n",stack[0]); //輸出結果
  }

}

/************************************************************** 
    Problem: 1101 
    User: zpy
    Language: C++ 
    Result: Accepted 
    Time:0 ms 
    Memory:1020 kb 
****************************************************************/  

                             
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章