简单模拟题。

CODE:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
using namespace std;

const int maxn = 101;
char s[maxn];
int a[maxn];

int get(char *s, int *a)
{
    int l = strlen(s);
    int tot = 0, i = 0, num = 0;
    while(i < l)
    {
        for(; i < l && isdigit(s[i]); i++)
        {
            num = num*10+s[i]-'0';
        }
        if(num)
        {
            a[tot++] = num;
        }
        num = 0;
        i++;
    }
    return tot;
}

void output(int a, int b)
{
    if(a%b == 0)
    {
        printf("%d\n", a/b);
    }
    else
    {
        printf("%.2lf\n"1.0*a/b);
    }
}


int main()
{
    int T;
    scanf("%d", &T);
    getchar();
    while(T--)
    {
        fgets(s, maxn, stdin);
        memset(a, 0sizeof(a));
        get(s, a);
        char c = s[0];
        switch(c)
        {
            case '+': printf("%d\n", a[0]+a[1]);break;
            case '-': printf("%d\n", a[0]-a[1]);break;
            case '*': printf("%d\n", a[0]*a[1]);break;
            case '/': output(a[0], a[1]);break;
        }
    }
    return 0;
}
posted on 2012-07-20 10:00  有间博客  阅读(169)  评论(0)    收藏  举报