簡體   English   中英

代碼中的Bizzare錯誤::塊

[英]Bizzare error in code::blocks

在第1行中出現錯誤:“宏名稱必須是標識符”,我無法解決此問題,也無法找到解決方案。 我不確定為什么會收到此錯誤,因為當我使用Dev c ++時很好,但是與此同時,由於數組太長,導致程序崩潰,出於某種原因,在具有這種長度的Code :: blocks中不會發生這種情況。

#include <iostream>
using namespace std;
int main(){
    int n,m,t,l [800] [100],p1[100001],p2[100001],k1[100001],k2[100001],a1[100001],a2[100001],trsa[2],aia[2],swtch0,swtch1,swtch_u,krmbl[2];
    cin>>n;
    cin>>m;
    for(int yi=0;yi<n;yi++){
        for(int y=0;y<m;y++){
            cin>>l[y] [yi];
        }
    }
    cin>>t;
    for(int o=0;o<t;o++){
        cin>>p1[o];
        cin>>p2[o];
        cin>>k1[o];
        cin>>k2[o];
        cin>>a1[o];
        cin>>a2[o];
        p1[o]--;
        p2[o]--;
        k1[o]--;
        k2[o]--;
        a1[o]--;
        a2[o]--;
    }

    for(int o=0;o<t;o++){
        trsa[0]=0;
        if(p1[o]>k1[o]){
            trsa[0]=p1[o]-k1[o];
        }else if(p1[o]<k1[o]){
            trsa[0]=p1[o]+k1[o];
        }
        trsa[1]=0;
        if(p2[o]>k2[o]){
            trsa[1]=p2[o]-k2[o];
        }else if(p2[o]<k2[o]){
            trsa[1]=p2[o]+k2[o];
        }

        for( aia[0]=p1[o];aia[0]<trsa[0];aia[0]++){
            krmbl[0]=krmbl[0]+l[aia[0]] [aia[1]];
            if(aia[0]==a1[o]){
                if(aia[1]==a2[o]){
                    swtch0=1;
                }
            }

        }
        for( aia[1]=p2[o];aia[1]<trsa[1];aia[1]++){
            krmbl[1]=krmbl[1]+l[aia[0]] [aia[1]];
            if(aia[0]==a1[o]){
                if(aia[1]==a2[o]){
                    swtch0=1;
                }
            }
        }
        for( aia[1]=p2[o];aia[1]<trsa[1];aia[1]++){
            krmbl[1]=krmbl[1]+l[aia[0]] [aia[1]];
            if(aia[0]==a1[o]){
                if(aia[1]==a2[o]){
                    swtch1=1;
                }
            }

        }
        for( aia[0]=p1[o];aia[0]<trsa[0];aia[0]++){
            krmbl[0]=krmbl[0]+l[aia[0]] [aia[1]];
            if(aia[0]==a1[o]){
                if(aia[1]==a2[o]){
                    swtch1=1;
                }
            }

        }
        if(krmbl[1]>krmbl[0]){
            if(swtch1==1){
                cout<<"TAK"<<endl;

            }else{
                cout<<"NIE"<<endl;
            }
        }else if(krmbl[1]<krmbl[0]){
            if(swtch0==1){
                cout<<"TAK"<<endl;

            }else{
                cout<<"NIE"<<endl;
            }

        }else{
            if(swtch0==1){
                cout<<"TAK"<<endl;

            }else{
                cout<<"NIE"<<endl;
            }
        }
        if(swtch1==1){
                cout<<"TAK"<<endl;

        }else{
                cout<<"NIE"<<endl;
        }
    }
}

您也可以通過全局聲明所有數組來使其在Dev C ++中運行。 全局聲明的大型數組(即在堆上)是可能的,如果您在main或任何函數中聲明了任何內容,則該數組將進入較小的堆棧,因此您的數組無法正常工作。 嘗試全局聲明它,它應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM