poj 2418

来源:互联网 发布:软件运营维护方案 编辑:程序博客网 时间:2024/05/16 01:59
其实一看这道题,我有点无语,我不知道该怎么控制让输入结束的,后来看了别人的讨论就是判断是否输入的为空就可以结束了,说实话我写的代码我自己测试的时候就算是为空也输入不结束的,但是交上去就结束了,有点无语,不过还是就是那样用快排过了!
 
#include<iostream>#include<string>using namespace std;struct fun{char s[33];}rr;int b[1000005];fun a[1000005];int cmp(const void *a,const void *b){return strcmp(((fun *)a)->s,((fun *)b)->s);}int main(){int i,j,k;i=0;while(gets(a[i].s)!=NULL)//while(scanf("%s",a[i].s)!=NULL){//gets(a[i].s);//if(strcmp(a[i].s,"0")==0)//break;b[i]=1;        i++;}qsort(a,i,sizeof(fun),cmp);    j=0;for(k=1; k<i; k++){if(strcmp(a[j].s,a[k].s)==0)//相等{b[j]++;b[k]=-1;}elsej=k;}    double m;for(j=0; j<i; j++){if(b[j]!=-1){            k=0;while(a[j].s[k]!='\0')printf("%c",a[j].s[k++]);m=1.0*b[j]/(i*1.0);printf(" %.4lf\n",m*100);}}return 0;}