您的位置:首页 > 其它

对于大型二维数组的定义 位置不同 导致会不会强制结束。。。 这是为何?

2016-07-13 20:38 295 查看
例#include<iostream>

#include<cstdio>

#include<cstring>

#include<algorithm>

#include<cmath>

using namespace std;

char a[2005][2005]; //能正常运行

int main()

{

int n,m,k,i,j;

while(cin>>n>>m>>k)

{

int b[2005];

memset(b,0,sizeof(b));

for(i=0;i<n;i++)

{

for(j=0;j<m;j++)

{

cin >> a[i][j];

}

}

for(j=0;j<m;j++)

{

for(i=0;i<n;i++)

{

if(a[i+1][j+1+i]=='L'&&(i<n-1)&&(j+i<m-1))

b[j]++;

if(a[i+2+i][j]=='U'&&(2*i<n-2))

b[j]++;

if(a[i+1][j-1-i]=='R'&&(i<n-1))

b[j]++;

}

}

for(i=0;i<m-1;i++)

printf("%d ",b[i]);

printf("%d\n",b[m-1]);

}

return 0;

}



#include<iostream>

#include<cstdio>

#include<cstring>

#include<algorithm>

#include<cmath>

using namespace std;

int main()

{

int n,m,k,i,j;

while(cin>>n>>m>>k)

{

char a[2005][2005];

int b[2005];

memset(b,0,sizeof(b));

for(i=0;i<n;i++)

{

for(j=0;j<m;j++)

{

cin >> a[i][j];

}

}

for(j=0;j<m;j++)

{

for(i=0;i<n;i++)

{

if(a[i+1][j+1+i]=='L'&&(i<n-1)&&(j+i<m-1))

b[j]++;

if(a[i+2+i][j]=='U'&&(2*i<n-2))

b[j]++;

if(a[i+1][j-1-i]=='R'&&(i<n-1))

b[j]++;

}

}

for(i=0;i<m-1;i++)

printf("%d ",b[i]);

printf("%d\n",b[m-1]);

}

return 0;

}

会出现



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: