题意:求每个_下边的数字之和,,右边的数字之和
#include<stdio.h>
#include<string.h>
int R[101][101],D[101][101];
char map[101][101];
int main()
{
int i,j,k,t,m,n,d,r;
char ch[2];
scanf("%d",&t);
while(t--)
{
memset(R,0,sizeof(R));
memset(D,0,sizeof(D));
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
scanf("%s",ch);
map[i][j]=ch[0];
}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
if(map[i][j]=='_')
{
d=i+1;r=j+1;
while(d<n&&map[d][j]!='_')
{
D[i][j]+=map[d][j]-'0';
d++;
}
while(r<m&&map[i][r]!='_')
{
R[i][j]+=map[i][r]-'0';
r++;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(j>0)printf(" ");
if(map[i][j]=='_')
{
if(D[i][j]==0)
printf("XXX");
else printf("%03d",D[i][j]);
if(D[i][j]==0&&R[i][j]==0)
printf("X");
else printf("\\");
if(R[i][j]==0)
printf("XXX");
else printf("%03d",R[i][j]);
}
else printf(".......");
}
printf("\n");
}
printf("\n");
}
return 0;
}