Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:字符数组没初始化。。wa了好几次。。谨记

Posted by pythonboy at 2013-01-08 15:49:49 on Problem 1111
In Reply To:字符数组没初始化。。wa了好几次。。谨记 Posted by:dad_mom at 2010-08-10 14:17:48
一样啊~唉~
#include <stdio.h>
#include <string.h>

char map[21][21];
int dir[8][2] = { {0, 1}, {0, -1}, {1, 0}, {-1, 0}, {1, 1}, {-1, -1}, {1, -1}, {-1, 1} };
int c;
int sx, sy;
int m, n;

int jud( int x, int y )
{
    int sum = 4;
    for( int i=0; i<4; i++ )
    {
        int xx = x+dir[i][0];
        int yy = y+dir[i][1];
        if( xx < 0 || xx >= n || yy <0 || yy >= n )
        {
            continue;
        }
        if( map[xx][yy] == 'X' || map[xx][yy] == 'Y' )
        {
            sum--;
        }
    }
    //printf("%d..\n", sum);
    return sum;
}

void dfs( int x, int y )
{
    if( x<0 || y<0 || x>=m || y >=n )
    {
        return ;
    }
    if( map[x][y] == 'X' )
    {
        c += jud( x, y );
        map[x][y] = 'Y';
        for( int i=0; i<8; i++ )
        {
            int xx = x + dir[i][0];
            int yy = y + dir[i][1];
            if( map[xx][yy] == 'X' )
            {
                dfs( xx, yy );
            }
        }
    }
    else
    {
        return ;
    }
}

int main()
{
    while(scanf("%d %d %d %d%*c", &m, &n, &sx, &sy), m+n+sx+sy)
    {
        memset( map, 0, sizeof(map) );//错在这了啊~~~~~
        sx--;
        sy--;
        for( int i=0; i<m; i++ )
        {
            scanf("%s", map[i]);
        }
        c = 0;
        dfs( sx, sy );
        printf("%d\n", c);
    }

    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator