hust 1074

这是错误程序

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<map>
#include<algorithm>
using namespace std;
map<string,int>cow;
int main()
{
    //freopen("in.txt","r",stdin);
    char str[1000],name[11],name1[11],name2[11],name3[11],num[11];
    char op;
    while(gets(str))
    {
        if (str[0]=='i' && str[1]=='n' && str[2]=='t'){
            bool cut=true;
            int k=0;
            for (int i=4;i<strlen(str)-1;i++)
            {
                if (str[i]=='=')
                {
                    name[k]=NULL;
                    k=0;
                    cut=false;
continue;
                }
                if(cut) name[k++]=str[i];
                else num[k++]=str[i];
            }
            num[k]=NULL;
            cow[name]=atoi(num);
        }
        else if (str[0]=='p' && str[1]=='r' && str[2]=='i' && str[3]=='n' && str[4]=='t' && str[5]=='f')
        {
            int i=8;
            while(str[i]!=',') i++;
            int k=0;
            for (int j=i+1;str[j]!=')';j++) name[k++]=str[j];
            name[k]=NULL;
            printf("%d
",cow[name]);
        }
        else
        {
            int k=0;
            bool cut1=true,cut2=true;
            for (int i=0;i<strlen(str)-1;i++){
            if (str[i]=='=')
            {
                name1[k]=NULL;
                k=0;
                cut1=false;
            }
            else if (str[i]=='+' || str[i]=='-' || str[i]=='*' || str[i]=='/')
            {
                op=str[i];
                name2[k]=NULL;
                k=0;
                cut2=false;
            }
            else if (cut1) name1[k++]=str[i];
            else if (!cut1 && cut2) name2[k++]=str[i];
            else if (!cut1 && !cut2) name3[k++]=str[i];
            }
            name3[k]=NULL;
            if (op=='+')
            {
                int sum=cow[name2]+cow[name3];
                cow[name1]=sum;
            }
            if (op=='-')
            {
                int sum=cow[name2]-cow[name3];
                cow[name1]=sum;
            }
            if (op=='*')
            {
                int sum=cow[name2]*cow[name3];
                cow[name1]=sum;
            }
            if (op=='/')
            {
                int sum=cow[name2]/cow[name3];
                cow[name1]=sum;
            }
        }
    }
    //fclose(stdin);
    return 0;
}
至少做到我努力了
原文地址:https://www.cnblogs.com/chensunrise/p/3724941.html