| ||||||||||
| 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 | |||||||||
problem: 1002常见的引起错误的情况都已经考虑进去了,但一直是wrong answer,不知道哪里错了。代码如下:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
char dict[8][3] = {{'A','B','C'}, {'D','E','F'},{'G','H','I'},{'J','K','L'},{'M','N','O'},{'P','R','S'},{'T','U','V'},{'W','X','Y'}};
void stand_num(char *num){
int num_length = strlen(num);
int index = 0;
int i=0;
int m=0;
int n=0;
for(i=0;i<num_length;i++){
if(num[i] == '-'){
num[i] = '\0';
}
else{
if(0<=num[i]-'0'&&num[i]-'0'<=9){
num[index++] = num[i];
}
else{
for(m=0;m<8;m++)
for(n=0;n<3;n++)
if(dict[m][n] == num[i]){
goto setvalue;
}
setvalue:num[index++] = (m+2)+'0';
}
}
}//for循环结束
num[index] = '\0';//the end symbol of the num
//return num;
}
void main(){
long int i=0;
long int j=0;
long int k=0;
long int m=0;
long int n=0;
int h=0;
long int totalnum=0;
long int appeartime = 0;
char **numlist;
char one_num[150] = {0};
int hava_duplicates=0;
scanf("%ld\n",&totalnum);
numlist = (char**)malloc((totalnum+1)*sizeof(char));
for(i=0;i<totalnum;i++){
gets(one_num);
stand_num(one_num);
numlist[i] = (char *)malloc(8*sizeof(char));
for(h=0;h<7;h++)
numlist[i][h] = one_num[h];
numlist[i][h] = '\0';
}
numlist[totalnum] = (char *)malloc(8*sizeof(char));
numlist[totalnum][7] = '\0';
for(i=1;i<=totalnum-1;i++)
for(j=0;j<totalnum-i;j++){
if(strcmp(numlist[j],numlist[j+1])>0){
numlist[totalnum]= numlist[j+1];
numlist[j+1] = numlist[j];
numlist[j] = numlist[totalnum];
}
}
for(m=0;m<totalnum-1;m++){
numlist[totalnum] = numlist[m];
appeartime = 1;
for(n=m+1;n<totalnum;n++){
if(strcmp(numlist[n],numlist[totalnum])!=0){
if(appeartime>1){
for(k=6;k>2;k--){
numlist[totalnum][k+1]=numlist[totalnum][k];
}
numlist[totalnum][k+1] = '-';
hava_duplicates = 1;
printf("%s %d\n",numlist[totalnum],appeartime);
m = n-1;
break;
}
else{
break;
}
}
else{
appeartime+=1;
if( n==totalnum-1){
if(appeartime>1){
for(k=6;k>2;k--){
numlist[totalnum][k+1]=numlist[totalnum][k];
}
numlist[totalnum][k+1] = '-';
hava_duplicates = 1;
printf("%s %d\n",numlist[totalnum],appeartime);
}
m = n-1;
}
}
}
}
if(hava_duplicates!=1){
printf("No duplicates.\n");
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator