【郑轻】[1773]Lovely simple problem two

这里写图片描述
这里写图片描述

刚开始没有HINT
所以想的比较麻烦
超长代码如下:

#include<stdio.h>
#include<string.h>
int main() {
    char s[100];
    int x,l,i;
    int re,t,p;
    while(scanf("%s",s)!=EOF) {
        l=strlen(s);
        for(i=x=re=0; i<l; i++) {
            if(i==0) {
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(re=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    re=re*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    re=-re;
                }
            }
            if(s[i]=='+') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    p=-p;
                }
                re=re+p;
            } else if(s[i]=='-') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    p=-p;
                }
                re=re-p;
            } else if(s[i]=='*') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    p=-p;
                }
                re=re*p;
            } else if(s[i]=='/') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1) {
                    x=0;
                    p=-p;
                }
                re=re/p;
            }
            if(s[i]=='=') {
                i++;
                if(s[i]=='-') {
                    i++;
                    x=1;
                }
                for(p=0; '0'<=s[i]&&s[i]<='9'; i++) {
                    p=p*10+s[i]-'0';
                }
                if(x==1)
                    p=-p;
                if(re==p)
                    printf("YES\n");
                else
                    printf("NO\n");
            } else
                i--;
        }
    }
    return 0;
}

另附 @A_ice 的气死人不偿命代码:

#include<stdio.h>
int main()
{
    int a,b,d,sum;
    char s,w;
    while(~scanf("%d%c%d%c%d",&a,&s,&b,&w,&d))
    {
        if(s=='+')
            sum=a+b;
        if(s=='-')
            sum=a-b;
        if(s=='*')
            sum=a*b;
        if(s=='/')
            sum=a/b;
        if(sum==d)
            printf("YES\n");
        else
            printf("NO\n");
    }   
    return 0;
}

看完的感觉就是……
我勒个去……这也行 -.-

题目地址:【杭电】[1773]Lovely simple problem two

原文地址:https://www.cnblogs.com/BoilTask/p/12569982.html