hdoj 1237 模拟

                计算器

Problem Description

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

Input

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

Output

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

Sample Input

1 + 2

4 + 2 * 5 - 7 / 11 0

Sample Output

3.00

13.36

#include "cstdio"
#include "algorithm"
#include "cstring"
double  cun[100];
int main()
{
    double  a,sum;
    char fh,e;//e为空格,fh为运算符号。
    int k;
    while (1){
        sum=0;
        k=0;
        scanf("%lf",&a);
        e=getchar();
        if(a==0&&e==‘\n‘){
            break;
        }
        cun[k++]=a;
        fh=getchar();
        e=getchar();
        while(scanf("%lf",&a)==1){
            if(fh==‘*‘){//符号为乘除时直接运算
                cun[k-1]*=a;
            }
            else if(fh==‘/‘){
                cun[k-1]/=a;
            }
            else if(fh==‘+‘){//符号为加或者减时将数字存下
                cun[k++]=a;
            }
            else if(fh==‘-‘){
                cun[k++]=-a;
            }
            e=getchar();
            if(e==‘\n‘){
                for(int i=0;i<k;i++){
//                    printf("%.2f\n",cun[i]);
                    sum+=cun[i];
                }
                printf("%.2f\n",sum);
                break;
            }
            fh=getchar();
            e=getchar();

        }
    }
    return  0;
}//稍微需要一点点点编码能力...
时间: 2024-11-05 12:38:03

hdoj 1237 模拟的相关文章

hdoj 1237 简单计算器 【字符串处理】

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

hdoj 1237 简单计算器

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

HDOJ 1237 简单计算器(堆栈)

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

HDOJ 1014 模拟

题目大意:给出两个数 ,s,m,按照题目中的要求计算生成的随机数列,判断是否生成了0~m-1这m个数列,若是则是好的选择,否则是坏的选择. 算法思想; 用一个标记flag[MAXN]来记录前0~m-1是否生成,同时用num记录数列的长度,循环判断当前的数是否先前生成过,若没有则标记,否及判断num是否等于m,若等则是一个好的选择,不等则不是一个好选择.输出时s,m均占10个字节有队齐,字符串从25列开始输出,左对齐.每个用例后空一行. 代码如下: #include <iostream> #in

HDOJ 5672//模拟

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5672 题意:有一个字符串S,字符串里面只包含小写字母,问有多少个子串里面有至少K个不同的字母: 思路:还是放在代码里面说会好一点,其实就是维护一个左端点和满足性质的最小右端点的过程. 1 #include <stdio.h> 2 #include <iostream> 3 #include <stdlib.h> 4 #include <algorithm> 5 #i

HDOJ 2317. Nasty Hacks 模拟水题

Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3049    Accepted Submission(s): 2364 Problem Description You are the CEO of Nasty Hacks Inc., a company that creates small pieces of

模拟 HDOJ 4552 Running Rabbits

题目传送门 1 /* 2 模拟:看懂题意,主要是碰壁后的转向,笔误2次 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #include <cstring> 7 #include <vector> 8 using namespace std; 9 10 const int MAXN = 1e3 + 10; 11 const int INF = 0x3f3f3f3f; 12 struct Rabbit 13

模拟 HDOJ 5387 Clock

题目传送门 1 /* 2 模拟:这题没啥好说的,把指针转成角度处理就行了,有两个注意点:结果化简且在0~180内:小时13点以后和1以后是一样的(24小时) 3 模拟题伤不起!计算公式在代码内(格式:hh/120, mm/120, ss/120) 4 */ 5 /************************************************ 6 * Author :Running_Time 7 * Created Time :2015-8-13 13:04:31 8 * Fil

HDOJ 题目5097 Page Rank(矩阵运算,模拟)

Page Rank Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 100000/100000 K (Java/Others) Total Submission(s): 280    Accepted Submission(s): 75 Problem Description Evaluation and rank of web pages is a hot topic for many internet companies and