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

自己测试结果对了。。。 但是不能AC,求高手帮忙看看。。。

Posted by lxm_xupt at 2012-08-01 00:26:33
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char trans(char ch);
int cmp(const void * a,const void * b)
{
    return strcmp((char *)a,(char *)b);
}
int main()
{
    char **input;
    char **result;
    int i,j,k,n;
    k = 0;
    int flag = 0;
    char remove[7] = {-1};
    scanf("%d",&n);
    input = (char **)malloc(n*sizeof(char*));
    result = (char **)malloc(n*sizeof(char*));
    for(i = 0; i < n; i++){
        input[i] = (char *)malloc(sizeof(char)*20);
        result[i] = (char *)malloc(sizeof(char)*8);
        memset(input[i],0,sizeof(char)*20);
        memset(result[i],0,sizeof(char)*8);
        scanf("%s",input[i]);
    }
    for(i = 0; i < n ;i++){
        for(j = 0; j < 20 ;j++)
            if(trans(input[i][j]) > -1){
                result[flag][k++] = trans(input[i][j]);
            }
            if(k == 7){
                flag++;
                k = 0;
            }
            else
                continue;
    }
    qsort(result,flag,sizeof(result[0]),cmp);
    int key = 0;int p =0;
    for(i = 0;i < flag;i++){
        for(j = i + 1 ;j < flag; j++){
            if((memcmp(result[i],result[j],7) == 0) && (memcmp(result[j],remove,7) != 0)){
                memcpy(result[j],remove,7);
                result[i][8] += 1;
                key = 1;
                p = 1;
            }
        }
        if(p){
            for(k = 0 ;k < 7;k++){
                    printf("%d",result[i][k]);
                    if(k == 2)
                    printf("-");
                }
            printf(" %d\n",result[i][8]+1);
            p = 0;
        }
    }
    if(!key)
        printf("No duplicates.\n");
    return 0;

}
char trans(char ch)
{
    if(ch>='A'&&ch<='Z')
        switch(ch - 'A'){
            case 0:
            case 1:
            case 2:
                return 2;
            case 3:
            case 4:
            case 5:
                return 3;
            case 6:
            case 7:
            case 8:
                return 4;
            case 9:
            case 10:
            case 11:
                return 5;
            case 12:
            case 13:
            case 14:
                return 6;
            case 15:
            case 17:
            case 18:
                return 7;
            case 19:
            case 20:
            case 21:
                return 8;
            case 22:
            case 23:
            case 24:
                return 9;
            case 16:
                return 0;
            case 25:
                return 0;
        }
        else if(ch == '-')
            return -1;
        else if(ch >= '0'&& ch <='9')
            return (ch-'0');
        else
            return -2;
}

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