HDOJ 1237题 简单计算器

简单计算器
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 15220 Accepted Submission(s): 5195

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

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

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

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

Sample Output
3.00
13.36

听说大部分人是用栈做的,可惜我现在还不太懂,所以就直接一个一个读入数组做了,开始的时候我出了一个小错误,就是那个0 + 0输出应该是0,而我开始写的判断是直接结束了。
ac代码:(很容易理解吧)

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
    char a;
    double s,a1,b[500];
    int i,j;
    while(scanf("%lf",&a1))
    {
        b[0]=a1;
        if(a1==0)
        {
            a=getchar();
            if(a=='\n')
                break;
        }
        i=1;
        while(1)
        {
            a=getchar();
            if(a=='+')
                {
                    scanf("%lf",&b[i]);
                    b[i]=b[i];
                    i++;
                }
            if(a=='-')
            {
                scanf("%lf",&b[i]);
                b[i]=-b[i];
                i++;
            }
            if(a=='/')
            {
                scanf("%lf",&b[i]);
                b[i]=b[i-1]/b[i];
                b[i-1]=0;
                i++;
            }
            if(a=='*')
            {
                scanf("%lf",&b[i]);
                b[i]=b[i-1]*b[i];
                b[i-1]=0;
                i++;
            }
            if(a=='\n')
                break;
        }
        s=0;
        for(j=0;j<i;j++)
        {
            s=s+b[j];
        }
        printf("%0.2lf\n",s);
    }
    return 0;
}
时间: 2024-10-23 16:31:30

HDOJ 1237题 简单计算器的相关文章

HDU 1237 简单计算器

简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11406    Accepted Submission(s): 3711 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值.   Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字

php学习之简单计算器实现代码

复制代码 代码如下: <html> <head> <title>PHP实现简单计算器</title> <meta http-equiv="Content-Type" content="text/html;charset=gb2312"> </head> <?php //单路分支 if(isset($_GET["sub"])) { $num1=true;//数字1是否为空

JS简单计算器实例

 这篇文章主要介绍了JS简单计算器的实现方法,以加法实例分析了js实现计算功能的技巧,需要的朋友可以参考下     本文实例讲述了JS简单计算器的实现方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript">

js的表单操作 简单计算器_javascript技巧

代码: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv

c语言-急求!简单计算器代码!

问题描述 急求!简单计算器代码! 请问用逆波兰函数和栈写计算器代码怎么写啊?能不能顺便注上解释,非常感谢! 解决方案 http://blog.csdn.net/roma823/article/details/6530066 给你一个链接,希望对你有用,里面是一个逆波兰计算器(C语言). 望采纳

ANTLR#1:描述一个简单计算器

ANTLR是什么鬼?引用官网的说明, What is ANTLR? ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and framewo

一个简单计算器java程序,不知道为什么除法总是算错

问题描述 一个简单计算器java程序,不知道为什么除法总是算错 一个简单计算器java程序,不知道为什么除法总是算错(不是全概率是高概率应该说,麻烦大大帮忙看看,非常感激 package com.calculator; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.Em

c++-菜鸟提问:用mfc编写简单计算器

问题描述 菜鸟提问:用mfc编写简单计算器 要求:用switch语句,实现加减乘除和小数点,temp表结果,former第一个数,later第二个数,其他常量不限-- 解决方案 MFC简单计算器基于MFC的简单计算器MFC简单计算器 解决方案二: http://zhangzhenzhen2009.blog.163.com/blog/static/18703924720115851146127/ 解决方案三: 操作步骤: 1.启动Visual C++,新建一个Visual C++项目,选用MFC应

如何用ASP.NET编写一段web页面的简单计算器(只要求加减乘除四则运算)

问题描述 用ASP.NET编写一段web页面的简单计算器(只要求加减乘除四则运算) 解决方案 解决方案二:这很难么?解决方案三:你是具体哪里不懂?解决方案四:我不会,我属于小白,谁能写一个给我解决方案五:告诉你一个最简单的办法,用Javascript语句:functioncompute(){try{eval('varval='+document.getElementById('expr').value);document.getElementById('result').value=val;}c