| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
自己测试结果对了。。。 但是不能AC,求高手帮忙看看。。。#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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator