Code: Select all
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Tree {
char name[32];
int freq;
};
struct Tree object[10000];
int index;
int check(char p[]){
int i ;
for(i=0;i<index;i++){
if(strcmp(object[i].name,p)==0)
return i;
else
continue;
}
return -1;
}
int compare(const void * a , const void * b){
return strcmp(((const struct Tree *)a)->name,((const struct Tree *)b)->name);
}
int main(){
int c ,i,minput;
long int total;
double result,x,y;
char input[35];
scanf("%d",&minput);
getchar();
while(minput>0){
total=0;
index=0;
while(gets(input)){
if(strcmp(input," ")==0)
continue;
c=check(input);
if(c==-1){
strcpy(object[index].name,input);
object[index++].freq=1;
}
else
object[c].freq++;
total++;
}
qsort(object,index,sizeof(struct Tree),compare);
x=total;
for(i=0;i<index;i++){
y=object[i].freq;
result=(double)(y/x)*100.0;
printf(object[i].name);
printf(" %.4lf\n",result);
}
printf("\n");
minput--;
}
return 0;
}
Riyad