首页 > 代码库 > hust 1074

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\n",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;
}