问题标题: L.bc_v.0.0.4&@王乐成

0
0
已解决
被禁言 刘宇航
刘宇航
修练者
修练者
#include<iostream>
#include<cmath>
#include<windows.h>
using namespace std;
long long dpos[1005][1005][15],ipos[1005][1005][15],opos[1005][1005][15],i=1,Error;
long long sz[1005][15],twj[15],error[100005];
int iinout[1005];
double dinout[1005];
bool binout[1005];
string sinout[1005];
long long linout[1005];
string s,t[1000005];
double fd[1005];
long long sl[1005],cl[1005],vs[1005],pa[1005];
int main(){
    cout<<"L.bc_0001>|";
    while(getline(cin,s)){
        t[i]=s;
        if(s.substr(0,4)=="int_"){
            if(s[5]=='='){
                for(int j=6;j<s.size();j++){
                    iinout[s[4]]=iinout[s[4]]*10+(s[j]-'0');
                }
            }
            dpos[i][s[4]][1]=1;
            fd[s[4]]=1.1;
        }
        else if(s.substr(0,7)=="double_"){
            dpos[i][s[7]][2]=1;
            fd[s[7]]=1.2;
        }
        else if(s.substr(0,5)=="bool_"){
            if(s[6]=='='){
                if(s[7]=='0') binout[s[5]]=0;
                else binout[s[5]]=1;
            }
            dpos[i][s[5]][3]=1;
            fd[s[5]]=1.3;
        }
        else if(s.substr(0,7)=="string_"){
            if(s[8]=='='&&s[9]=='"'&&s[s.size()-1]=='"'){
                for(int j=10;j<s.size()-1;j++){
                    sinout[s[7]]+=s[j];
                }
            }
            dpos[i][s[7]][4]=1;
            fd[s[7]]=1.4;
        }
        else if(s.substr(0,10)=="long long_"){
            if(s[11]=='='){
                for(int j=12;j<s.size();j++){
                    linout[s[10]]=linout[s[10]]*10+(s[j]-'0');
                }
            }
            dpos[i][s[4]][5]=1;
            fd[s[10]]=1.5;
        }
        else if(s.substr(0,4)=="lin>"&&(s[4]>='a'&&s[4]<='z')||(s[4]>='A'&&s[4]<='Z')){
            if(fd[s[4]]==0){
                Error++;
                error[i]=1;
            }
            if(fd[s[4]]==1.1) ipos[i][s[4]][1]=1;
            if(fd[s[4]]==1.2) ipos[i][s[4]][2]=1;
            if(fd[s[4]]==1.3) ipos[i][s[4]][3]=1;
            if(fd[s[4]]==1.4) ipos[i][s[4]][4]=1;
            if(fd[s[4]]==1.5) ipos[i][s[4]][5]=1;
        }
        else if(s.substr(0,5)=="lout<"&&(s[5]>='a'&&s[5]<='z')||(s[5]>='A'&&s[5]<='Z')){
            if(fd[s[5]]==0){
                Error++;
                error[i]=1;
            }
            if(fd[s[5]]==1.1) opos[i][s[5]][1]=1;
            if(fd[s[5]]==1.2) opos[i][s[5]][2]=1;
            if(fd[s[5]]==1.3) opos[i][s[5]][3]=1;
            if(fd[s[5]]==1.4) opos[i][s[5]][4]=1;
            if(fd[s[5]]==1.5) opos[i][s[5]][5]=1;
        }
        else if(s=="L<Win>"){
            twj[1]=1;
        }
        else if(s.substr(0,6)=="sleep("&&s[s.size()-1]==')'){
            if(twj[1]==0){
                Error++;
                error[i]++;
            }
            for(int j=6;j<s.size()-1;j++){
                sl[i]=sl[i]*10+(s[j]-'0');
            }
        }
        else if(s.substr(0,7)=="system("&&s[7]=='"'&&s.substr(8,5)=="clean"&&s[13]=='"'&&s[14]==')'){
            if(twj[1]==0){
                Error++;
                error[i]=1;
            }
            cl[i]++;
        }
        else if(s.substr(0,7)=="system("&&s[7]=='"'&&s.substr(8,5)=="pause"&&s[13]=='"'&&s[14]==')'){
            if(twj[1]==0){
                Error++;
                error[i]=1;
            }
            pa[i]++;
        }
        else if(s=="over 0"){
            break;
        }
        else if(s=="") ;
        else{
            Error++;
            error[i]=1;
        }
        i++;
        if(i<10) cout<<"L.bc_000"<<i<<">|";
        else if(i<100) cout<<"L.bc_00"<<i<<">|";
        else if(i<1000) cout<<"L.bc_0"<<i<<">|";
        else if(i<10000) cout<<"L.bc"<<i<<">|";
        else{
            cout<<"Error!"<<endl;
            cout<<"不合法行数!!!"<<endl;
            cout<<"  /\\"<<endl;
            cout<<" / !\\"<<endl;
            cout<<"/____\\"<<endl;
            Sleep(1000);
            system("cls");
            return 0;
        }
    }
    if(Error!=0){
        cout<<Error<<" to ERROR!"<<endl;
        for(int i=1;i<=10000;i++){
            if(error[i]!=0) cout<<"Number "<<i<<" is ERROR!"<<endl;
        }
        return 0;
    }
    cout<<endl<<"运行结果:"<<endl<<endl; 
    for(int lbcp=1;lbcp<=i;lbcp++){
        if(sl[lbcp]!=0){
            Sleep(sl[lbcp]);
            continue;
        }
        if(cl[lbcp]!=0){
            system("cls");
            for(int sk=1;sk<=i;sk++){
                cout<<"L.bc_"<<sk<<">|";
                cout<<t[sk]<<endl;
            }
            cout<<endl<<"运行结果:"<<endl<<endl;
            continue;
        }
        if(pa[lbcp]!=0){
            system("pause");
            system("cls");
            for(int sk=1;sk<=i;sk++){
                cout<<"L.bc_"<<sk<<">|";
                cout<<t[sk]<<endl;
            }
        }
        for(int j=1;j<=1000;j++){
            if(ipos[lbcp][j][1]!=0){
                cin>>iinout[j];
            }
            if(ipos[lbcp][j][2]!=0){
                cin>>dinout[j];
            }
            if(ipos[lbcp][j][3]!=0){
                cin>>binout[j];
            }
            if(ipos[lbcp][j][4]!=0){
                cin>>sinout[j];
            }
            if(ipos[lbcp][j][5]!=0){
                cin>>linout[j];
            }
            if(opos[lbcp][j][1]!=0){
                cout<<iinout[j]<<" ";
            }
            if(opos[lbcp][j][2]!=0){
                cout<<dinout[j]<<" ";
            }
            if(opos[lbcp][j][3]!=0){
                cout<<binout[j]<<" ";
            }
            if(opos[lbcp][j][4]!=0){
                cout<<sinout[j]<<" ";
            }
            if(opos[lbcp][j][5]!=0){
                cout<<linout[j]<<" ";
            }
        }
    }
    return 0;
}

新增

1)10000行不合法行数

2)报错:出错行数

@王乐成 

按你的要求来的,出错行数

 

其他的嘛,就没新增的内容了,感谢 @王乐成 提出的建议,本期是满足王乐成的建议,所以没加其他的

你们想要加什么内容也可以告诉我!

 


0
已采纳
李宜和
李宜和
高级启示者
高级启示者

不是说要编写一个你指定的代码吗?

0
王乐成
王乐成
高级守护
高级守护

建议不要这样起名字,容易侵犯MINECRAFT的知识产权。

可以仿照沙xx的:HTCRAFT

我要回答