讨论 / 很想知道这种算法到底哪错了.
TcDiagram 2011-10-06 18:26:00
点我顶贴 收藏 删除
#include <stdio.h>

//#include <iostream>

using namespace std;

const int table[] = {

1234,0,2143,2424,33412,

1324,131234,2,12314234,12342

};

/*

7 5

0 1 1 1 1

0 0 0 1 1

1 1 1 1 1

1 0 0 0 0

1 0 0 0 0

1 0 0 0 0

1 1 0 0 0

*/

int main(void){

int map[11][11]={0},x,y,i,j;

int flag = 0;

scanf("%d%d",&y,&x);

for (i=1;i<=y;i++){

for (j=1;j<=x;j++){

scanf("%d",&map[i][j]);

}

}

for (i=1;i<=y;i++){

for (j=1;j<=x;j++){

if (map[i][j]==1)

{

if ((map[i-1][j]==1)&&

(map[i][j+1]==1)&&

(map[i-1][j+1]!=1))

{

flag = flag*10+3;

//continue;

}

if ((map[i-1][j]==1)&&

(map[i][j-1]==1)&&

(map[i-1][j-1]!=1))

{

flag = flag*10+4;

//continue;

}

if ((map[i][j+1]==1)&&

(map[i+1][j]==1)&&

(map[i+1][j+1]!=1))

{

flag = flag*10+1;

//continue;

}

if ((map[i][j-1]==1)&&

(map[i+1][j]==1)&&

(map[i+1][j-1]!=1))

{

flag = flag*10+2;

//continue;

}

}

}

}

//cout <<flag<<endl;

for (i=0;i<=9;i++){

if (flag==table[i])

{

printf("%d",i);

break;

}

}

//system("pause");

return 1;

}

#1 TcDiagram@2011-10-06 18:26:00
回复 删除
如果有谁知道,请帮忙解答一下.

不胜感激

查看更多回复
提交回复