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 |
大牛们能帮我看看哪错了吗?在ACM上总是提示结果错误,我找不到哪错了,谢谢了。#include"stdlib.h" #include<stdio.h> typedef struct Mych { char ch[7]; int t; }Mych,*Mylink; bool compare(char a[],char b[]) { for(int i=0;i<7;i++) if(a[i]!=b[i]) return false; return true; } int arraycmp(Mylink *l,char a[],int len) { for(int i=0;i<len;i++) { if(compare(l[i]->ch,a)) return i; } return -1; } char *Change(char *a) { char *b=(char *)malloc(sizeof(char)*7); int j=0; for(int i=0;i<7;i++) { while(a[j]=='-') j++; if(int(a[j])<58) //9的ascll 58 { b[i]=a[j]; } else { if(int(a[j])<82) b[i]=int(50+((int)a[j]-65)/3); else if((int(a[j])>=82)&&(int(a[j])<90)) b[i]=int(50+((int)a[j]-66)/3); } j++; } return b; } int main(int argc, char* argv[]) { Mylink *l=(Mylink *)malloc(sizeof(Mylink)); int ll=0; l[ll]=NULL; int n,i,j; int pos; char a[100]; char *b; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s",a); b=Change(a); pos=arraycmp(l,b,ll); if(pos==-1) { l[ll]=(Mylink)malloc(sizeof(Mych)); l[ll]->t=1; for(j=0;j<7;j++) l[ll]->ch[j]=b[j]; ll++; } else l[pos]->t++; } bool empty=true; for(i=0;i<ll;i++) { if(l[i]->t>1) { empty=false; for(j=0;j<7;j++) { printf("%c",l[i]->ch[j]); if(j==2) printf("-"); } printf(" %d\n",l[i]->t); } } if(empty) printf("No duplicates.\n"); return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator