随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。
输入首先给出正整数N(≤),随后N行,每行给出卫星观测到的一棵树的种类名称。种类名称由不超过30个英文字母和空格组成(大小写不区分)。
按字典序递增输出各种树的种类名称及其所占总数的百分比,其间以空格分隔,保留小数点后4位。
#include <stdio.h>#include <stdlib.h>#include <string.h>char s[100000][30];int cmp(const void * a,const void *b){ char *aa = (void *)a,*bb = (void *)b; return strcmp(aa,bb)>0?1:-1;}int main(){ int n,c = 1; scanf("%d",&n); strcpy(s[n],"spz"); getchar(); for(int i = 0;i < n;i ++) { gets(s[i]); } qsort(s,n,sizeof(s[0]),cmp);// printf("%d\n",n);// for(int i = 0;i < n;i ++)// {// puts(s[i]);// } for(int i = 1;i <= n;i ++) { if(strcmp(s[i],s[i - 1]) == 0)c ++; else { printf("%s %.4f%%\n",s[i - 1],c*100.0/n); c = 1; } }}
转载于:https://www.cnblogs.com/linguiquan/p/8934019.html
