hdu 1237 简单计算器

来源:互联网 发布:通配符域名证书 编辑:程序博客网 时间:2024/05/19 13:27

普通方法

#include<iostream>#include<string.h>using namespace std;char a[205], c[205];double b[205];int main(){while(gets(a)){//if(!strcmp(a, "0"))//break;memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));int i, temp=0, t = 0, l;l = strlen(a);if(l == 1 && a[0] == '0'){exit(0);}double sum = 0;for( i=0; i < l; i++ ){if(a[i] >= '0' && a[i] <= '9')temp = temp*10 + a[i] - '0', b[t] = temp;elsetemp = 0;if(a[i] == '+' || a[i] == '-' || a[i] == '*' || a[i] == '/')c[t++] = a[i];}for( i=0; i < t; i++ ){if(c[i] == '*' || c[i] == '/'){if(c[i] == '*'){b[i+1] *= b[i];b[i] = 0;if(i-1 >= 0)c[i] = c[i-1];elsec[i] = '+';}else{b[i+1] = b[i] / b[i+1];b[i] = 0;if(i-1 >= 0)c[i] = c[i-1];elsec[i] = '+';}}}sum = b[0];for( i=0; i < t; i++ ){if(c[i] == '+')sum += b[i+1];elsesum -= b[i+1];}printf("%.2lf\n", sum);}return 0;}


原创粉丝点击