谢了~今天时间不早了 明天再看
遇到问题再上来问 把代码留下~让大家帮我看下
#include<iostream>
#include <string>
using namespace std;
#define eof 0
int main(void)
{ int x,xl,y,yl,i,j,count; char *p; char c[1]; cin>>x>>y; xl=x+2; yl=y+2; char** a; a=new char*[xl]; for (i=0;i!=xl;++i) a[i]=new char[yl]; for (i=0;i!=xl;++i) a[i][0]='0';//第一列置为0 for (i=0;i!=xl;++i) a[i][yl]='\0';//最后一列置为\0 for (j=1;j!=yl-1;++j) a[0][j]='0'; //第一行置为0 for (j=1;j!=yl-1;++j) a[x+1][j]='0'; //最后一行置为0
for (i=1;i!=xl-1;++i) { p=a[i]+1; cin>>p; } for (i=1;i!=xl-1;++i)//这个循环里的代码 是错的 没判断斜角 { for (j=1;j!=yl-1;++j) { if (a[i][j]=='*') { continue; } count=0; if (a[i][j-1]=='*') ++count; if (a[i+1][j+1]=='*') ++count; if (a[i-1][j-1]=='*') ++count; if (a[i][j+1]=='*') ++count; if (a[i+1][j]=='*') ++count; if (a[i-1][j]=='*') ++count; if (count!=0) { itoa(count,c,10); a[i][j]=c[0]; } } } for (i=1;i!=x+1;++i) { p=a[i]+1; cout<<p<<endl; } return 0;
}