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 |
为什么总是WA?#include<stdio.h> #include<iostream.h> #include<string.h> #include <stdlib.h> struct pp { int start; int num; }hh[5600]; char s[5600]; int compare (const void * a, const void * b) { pp *x= (pp*)a,*y=(pp *)b; if(x->num==y->num) { if(s[x->start]==s[y->start]) return s[x->start+1]-s[y->start+1]; else return s[x->start]-s[y->start]; } else return -(x->num-y->num); } int main() { char c[100]; int n,i,j,len; int sum,count; while(cin>>n&&n) { s[0]='\0'; for(i=1;i<=n;i++) { gets(c); strcat(s,c); } len=strlen(s); // cout<<s<<endl; sum=len-1; for(i=0;i<len-1;i++) { count=0; for(j=i+1;j<len-1;j++) if(s[i]==s[j]&&s[i+1]==s[j+1]) count++; hh[i].start=i;hh[i].num=count+1; } qsort (hh, len-1, sizeof(pp), compare); count=0; for(i=0;i<len-1;i++) { for(j=0;j<i;j++) if(s[hh[i].start]==s[hh[j].start]&&s[hh[i].start+1]==s[hh[j].start+1]) break; if(j==i) { printf("%c%c %d %0.6f\n",s[hh[i].start],s[hh[i].start+1],hh[i].num,hh[i].num*1.0/sum); count++; } if(count==5) {break;} } printf("\n"); } return 1; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator