对于大型二维数组的定义 位置不同 导致会不会强制结束。。。 这是为何?
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;
}
会出现
#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;
}
会出现
相关文章推荐
- DataUtils(java日期工具类)
- Cocos2d-x 基础概念——调度器(scheduler)
- 【BZOJ-3725】Matryca 乱搞
- 【Log】logback的配置和使用(一)
- zencart 选择支付方式
- ds1302写时间
- Integer to Roman
- ubuntu 安装nodejs 4.X版本以上
- Android模拟器(出错问题)Intel X86 没法用!!!
- 蛇形填充数组
- POJ 2417 Discrete Logging(BSGS算法,gcd(a,p)=1)
- leetcode 344 Reverse String
- iOS基础:正则表达式对象
- HDU 1004 Let the Balloon Rise
- 图像数据在ITK和VTK之间转换
- UWP MD5加密
- html select
- CSUOJ 1284 Cutting Cake(递推)
- ios developer tiny share-20160713
- ios developer tiny share-20160713