菜鸡提问 二维数组遍历方向的数组

qq_41630137 2018-05-08 07:26:27
#include<iostream>
#include<string.h>
#include <stdio.h>
using namespace std;
//1,0,-1,0,0-1,0,1,1,1,1,-1,-1,1,-1,-1
int st[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1},sum=0;
int m,n;const int z=105;
char s[z][z]={};
void dfs(int x,int y)
{int nx,ny;
for(int i=0;i<8;i++)
{
nx=x+st[i][0];
ny=y+st[i][1];
if(s[nx][ny]=='@'&&nx>=0&&ny>=0&&nx<m&&ny<n)
{
s[nx][ny]='*';dfs(nx,ny);
}
}
}
int main()
{
while(cin>>m>>n)
{if(m==0&&n==0) break;sum=0;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++) cin>>s[i][j];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
if(s[i][j]=='@') {sum++;dfs(i,j);}
}
cout<<sum<<endl;
}
}
/* 其中int st[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1}可以
{1,0,-1,0,0-1,0,1,1,1,1,-1,-1,1,-1,-1}不可以
{1,0},{-1,0},{0,1},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1}可以
想问问什么原理
...全文
459 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_41630137 2018-05-10
  • 打赏
  • 举报
回复
nice 兄弟我是菜鸡~~
  • 打赏
  • 举报
回复
{1,0,-1,0,0-1,0,1,1,1,1,-1,-1,1,-1,-1} 这个数组初始化第五个后面少了一个逗号吧
qq_41630137 2018-05-08
  • 打赏
  • 举报
回复
dev c++hdu1241别说报编译器 oj都交了 错了
qq_41630137 2018-05-08
  • 打赏
  • 举报
回复
最后一张改了下数组就过了
真相重于对错 2018-05-08
  • 打赏
  • 举报
回复
引用 楼主 qq_41630137 的回复:
#include<iostream> #include<string.h> #include <stdio.h> using namespace std; //1,0,-1,0,0-1,0,1,1,1,1,-1,-1,1,-1,-1 int st[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1},sum=0; int m,n;const int z=105; char s[z][z]={}; void dfs(int x,int y) {int nx,ny; for(int i=0;i<8;i++) { nx=x+st[i][0]; ny=y+st[i][1]; if(s[nx][ny]=='@'&&nx>=0&&ny>=0&&nx<m&&ny<n) { s[nx][ny]='*';dfs(nx,ny); } } } int main() { while(cin>>m>>n) {if(m==0&&n==0) break;sum=0; for(int i=0;i<m;i++) for(int j=0;j<n;j++) cin>>s[i][j]; for(int i=0;i<m;i++) for(int j=0;j<n;j++) { if(s[i][j]=='@') {sum++;dfs(i,j);} } cout<<sum<<endl; } } /* 其中int st[8][2]={-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1}可以 {1,0,-1,0,0-1,0,1,1,1,1,-1,-1,1,-1,-1}不可以 {1,0},{-1,0},{0,1},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1}可以 想问问什么原理
你确定,请报上你的编译器

64,281

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧