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

求代码分析

Posted by hyztcy at 2011-07-15 11:53:48 on Problem 1002
In Reply To:给几个数据给大家。借鉴 Posted by:fbixiaozc135 at 2007-08-05 01:21:19
WA错误
#include <stdlib.h>
#include <stdio.h>

#define  TELE_SIZE  30

int
main()
{
    int i = 0;
    int j = 0;
    int cnt = 0;
    int n_line = 0;
    int res_n_line = 0;
    char **tele_no;

    scanf("%d", &n_line);
    tele_no = (char **)malloc( n_line * sizeof( char * ) );
    i = n_line;
    while( i )
    {
        tele_no[n_line - i] = (char *) malloc ( TELE_SIZE * sizeof(char ) );
        memset( tele_no[n_line-i], 0x00, sizeof( tele_no[n_line-i] ) );

        scanf("%s", tele_no[n_line-i]);

        i--;
    }


    for( i= 0; i< n_line; i++ )
        if( CONNTRIM(tele_no[i]) < 0 )
            exit(-1);

    for( i = 0; i < n_line-1; i++ )
    {
        if( tele_no[i][0] == 'Q' )
            continue;
        cnt = 0;
        for( j = i + 1; j < n_line; j++ )
        {
            if( tele_no[j][0] == 'Q' )
                continue;
            if( memcmp( tele_no[i], tele_no[j],7 ) == 0 )
            {
                tele_no[j][0]='Q';
                cnt++;
            }
        }
        if( cnt > 0 )
        {
            printf("%c%c%c%c%c%c%c%c %d\n",tele_no[i][0],tele_no[i][1],tele_no[i][2],'-',\
                    tele_no[i][3],tele_no[i][4],tele_no[i][5],tele_no[i][6],cnt+1);
            res_n_line++;
        }

    }

    if( res_n_line == 0 )
        printf("No duplicates.\n");

    for( i= 0; i< n_line; i++ )
        free(tele_no[i]);

    free(tele_no);
    return 0;
}

int
CONNTRIM(char * tele_no)
{
    int i = 0;
    char *tele;
    char tmp[TELE_SIZE];
    memset( tmp, 0x00, sizeof( tmp ) );

    tele=tele_no;
    while( *tele )
    {
        if( *tele == 'A' || *tele == 'B' || *tele == 'C' )
            tmp[i] = '2';
        else if( *tele == 'D' || *tele == 'E' || *tele == 'F' )
            tmp[i] = '3';
        else if( *tele == 'G' || *tele == 'H' || *tele == 'I' )
            tmp[i] = '4';
        else if( *tele == 'J' || *tele == 'K' || *tele == 'L' )
            tmp[i] = '5';
        else if( *tele == 'M' || *tele == 'N' || *tele == 'O' )
            tmp[i] = '6';
        else if( *tele == 'P' || *tele == 'R' || *tele == 'S' )
            tmp[i] = '7';
        else if( *tele == 'T' || *tele == 'U' || *tele == 'V' )
            tmp[i] = '8';
        else if( *tele == 'W' || *tele == 'X' || *tele == 'Y' )
            tmp[i] = '9';
        else if( isdigit(*tele) )
            tmp[i] = *tele;
        else if( *tele == '-' )
            i--;
        else
        {
            printf("ERR:[%c] \n",*tele );
            return -1;
        }
        i++;
        tele++;
    }
    memcpy( tele_no, tmp, TELE_SIZE );

    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