zoukankan      html  css  js  c++  java
  • hdoj--1237--简单计算器(栈模拟)

    简单计算器

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 15927    Accepted Submission(s): 5447



    Problem Description
    读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
     

    Input
    测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
     

    Output
    对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
     

    Sample Input
    1 + 2 4 + 2 * 5 - 7 / 11 0
     

    Sample Output
    3.00 13.36
     

    Source
    浙大计算机研究生复试上机考试-2006年

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int main()
    {
    	double num[210];
    	double b,sum;
    	char c;
    	int top;
    	while(scanf("%lf",&b))
    	{
    		c=getchar();
    		if(b==0&&c=='
    ')
    		break;
    		else
    		{
    			top=0;
    			memset(num,0,sizeof(num));
    			num[top++]=b;
    		}
    		while(true)
    		{
    			scanf("%c %lf",&c,&b);
    			if(c=='*')
    			num[top-1]*=b;
    			else if(c=='/')
    			num[top-1]/=b;
    			else if(c=='+')
    			num[top++]+=b;
    			else if(c=='-')
    			num[top++]-=b;
    			if(getchar()=='
    ')
    			break;
    		}
    		sum=0;
    		for(int i=0;i<top;i++)
    		sum+=num[i];
    		printf("%.2lf
    ",sum);
    	}
    	return 0;
    }


     
  • 相关阅读:
    C/C++ 获取线程入口地址模块等
    C/C++ IAT HOOK MessageBoxW
    C/C++ HOOK 全局 API
    c/c++创建静态库
    如何画Windows窗体
    WindowsPE TLS表
    WindowsPE 延迟加载导入表
    WindowsPE 资源表
    WindowsPE 重定位表
    WindowsPE 导出表
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273597.html
Copyright © 2011-2022 走看看