Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
又一个水题,咋木人做?#include <iostream> #include <stdio.h> using namespace std; int n; int oprd[100]; char oprt[100]; int succ[100]; char var[16]; int ans(int op1, int op2, char op){ if(op == '+') return op1+op2; if(op == '-') return op1-op2; if(op == '*') return op1*op2; if(op == '/') return op1/op2; return 0; } void print(){ int start = 0; printf("%d ", oprd[0]); while(1){ start = succ[start]; if(start == -1) break; printf("%c %d ", oprt[start], oprd[start]); } printf("= %s\n", var); } int main() { while(scanf("%d", &oprd[0]) > 0){ n = 1; int cc = 0; while(1){ scanf("\n%c", &oprt[n]); if(oprt[n] == '='){ n--; break; } if(oprt[n] == '*' || oprt[n] == '/') cc++; scanf("%d", &oprd[n]); n++; } scanf("%s", var); for(int i = 0; i < n; i++){ succ[i] = i+1; } succ[n] = -1; print(); for(int i = 0; i < cc; i++){ int tar = 0, tarNext = succ[0]; while(1){ if(oprt[tarNext] == '*' || oprt[tarNext] == '/') break; tar = tarNext; tarNext = succ[tarNext]; } oprd[tar] = ans(oprd[tar], oprd[tarNext], oprt[tarNext]); succ[tar] = succ[tarNext]; print(); } for(int i = 0; i < n-cc; i++){ oprd[0] = ans(oprd[0], oprd[succ[0]], oprt[succ[0]]); succ[0] = succ[succ[0]]; print(); } printf("\n"); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator