我在第1行得到错误:"宏名称必须是标识符"在这 我无法解决这个问题,也无法为此找到解决方案。 我不知道为什么我会收到这个错误,因为当我使用Dev c ++时它很好,但同时程序崩溃,因为数组太长,这在Code中没有发生: :由于某种原因,这个长度的块。
#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;
}
}
}
答案 0 :(得分:0)
通过全局声明所有数组,您也可以在Dev C ++中运行它。 全局(即在堆上)声明的大型数组是可能的,如果你在main或任何函数中声明任何东西它进入堆栈,它具有较小的大小,因此你的数组没有工作。尝试全局声明它,它应该工作。