

Moderator: Board moderators
Code: Select all
#include <stdio.h>
int main(void)
{
int arr[150][150];
int i,j,mrow,mcol,cnt=0;
char c[200];
while(scanf("%d%d ",&mrow,&mcol)!=EOF) {
if(mrow==0 && mcol==0) break;
printf("Field #%d:\n",++cnt);
for(i=0 ; i<mrow ; i++) {
scanf("%s",c);
for(j=0 ; j<mcol ; j++) {
if(c[j]=='*') arr[i][j] = -100;
else arr[i][j] = 0;
}
}
for(i=0 ; i<mrow ; i++) {
for(j=0 ; j<mcol ; j++) {
if (arr[i][j] < 0) {
arr[i-1][j-1] ++; arr[i-1][j] ++; arr[i-1][j+1] ++;
arr[i][j-1] ++; arr[i][j] ++; arr[i][j+1] ++;
arr[i+1][j-1] ++; arr[i+1][j] ++; arr[i+1][j+1] ++;
}
}
}
for(i=0 ; i<mrow ; i++) {
for(j=0 ; j<mcol ; j++) {
if (arr[i][j] > -1) printf("%d",arr[i][j]);
else printf("*");
}
printf("\n");
}
printf("\n");
}
return 0;
}
Code: Select all
#include<stdio.h>
#include<stdlib.h>
char a[102][102];
int n,m;
int check(int j,int i,int m){
int count=0;
if(a[j][i]=='*')
return 9;
else {
if(j!=0){
if(a[j-1][i-1]=='*' && i!=0)
count++;
if(a[j-1][i]=='*')
count++;
if(a[j-1][i+1]=='*')
count++;
}
if(a[j][i-1]=='*' && i!=0)
count++;
if(a[j][i+1]=='*')
count++;
if(j!=m){
if(a[j+1][i-1]=='*' && i!=0)
count++;
if(a[j+1][i]=='*')
count++;
if(a[j+1][i+1]=='*')
count++;
}
return count+'0';
}
}
int main(void){
int cnt=0;
int i,j;
while(1){
scanf("%d %d",&n,&m);
if(n==0 && m==0)
break;
cnt++;
for(j=0;j<n;j++){
for(i=0;i<m;i++){
a[j][i]='.';
}
}
for(j=0;j<n;j++){
for(i=0;i<m;i++){
scanf(" %c",&a[j][i]);
}
}
for(j=0;j<n;j++){
for(i=0;i<m;i++){
if(check(j,i,m)!=9)
a[j][i]=check(j,i,m);
}
}
if(cnt>1)printf("\n");
printf("Field #%d:\n",cnt);
for(j=0;j<n;j++){
for(i=0;i<m;i++)
printf("%c",a[j][i]);
printf("\n");
}
}
return 0;
}
Code: Select all
#include<iostream>
using namespace std;
char check(char t)
{
int i=0;
if(t!=42) i=1;
return i;
}
main()
{
int a, b, it=1;
while(cin>>a>>b)
{
if((a==0) && (b==0)) break;
char **t;
t= new char*[a+5];
for(int i=0; i<a+5; i++)
t[i] = new char[b+5];
for(int i=0; i<a+5; i++)
{
for(int j=0; j<b+5; j++)
t[i][j]=48;
}
char z;
for(int i=1; i<a+1; i++)
{
for(int j=1; j<b+1; j++)
{
cin>>z;
if(z==42)
{
t[i][j]=42;
t[i-1][j-1]+=check(t[i-1][j-1]);
t[i-1][j]+=check(t[i-1][j]);
t[i-1][j+1]+=check(t[i-1][j+1]);
t[i][j-1]+=check(t[i][j-1]);
t[i][j+1]+=check(t[i][j+1]);
t[i+1][j-1]+=check(t[i+1][j-1]);
t[i+1][j]+=check(t[i+1][j]);
t[i+1][j+1]+=check(t[i+1][j+1]);
}
}
}
cout<<"\nField #"<<it++<<"\n";
for(int i=1; i<a+1; i++)
{
for(int j=1; j<b+1; j++)
{
cout<<t[i][j];
}
cout<<"\n";
}
for(int i=a; i<a+5; i++)
delete [] t[i];
delete [] t;
}
}
Code: Select all
var
m,n:byte;
test:integer;
house:array[1..100,1..100]of char;
st:string;
khane:array[1..100,1..100]of (mine,clear);
h:array[1..100,1..100]of byte;
i,j:integer;
function shownumber(num1,num2:integer):integer;
var
x,y,tedad:integer;
begin
tedad:=0;
for x:=num1-1 to num1+1 do
for y:=num2-1 to num2+1 do
if (khane[x,y]=mine)and(x<=m)and(x>=1)and(y<=n)and(y>=1) then
tedad:=tedad+1;
shownumber:=tedad;
end;
begin
readln(m,n);
test:=1;
while (m<>0)or(n<>0) do
begin
for i:=1 to m do
for j:=1 to n do
begin
khane[i,j]:=clear;
house[i,j]:='.';
h[i,j]:=0;
end;
for i:=1 to m do
begin
readln(st);
for j:=1 to length(st) do
house[i,j]:=st[j];
end;
writeln('Field #',test,':');
for i:=1 to m do
for j:=1 to n do
if house[i,j]='*' then
khane[i,j]:=mine
else
khane[i,j]:=clear;
for i:=1 to m do
for j:=1 to n do
if khane[i,j]<>mine then
h[i,j]:=shownumber(i,j);
for i:=1 to m do
begin
for j:=1 to n do
if khane[i,j]<>mine then
write(h[i,j])
else
write('*');
writeln;
end;
writeln
test:=test+1;
readln(m,n);
end;
end.
Code: Select all
Code, deleted, thanks