统计不同单词个数

来源:互联网 发布:windows 2012 r2 编辑:程序博客网 时间:2024/06/06 03:04

题目描述

输入一组单词,统计不同单词的个数,按单词个数升序输出统计结果(个数相同时,按单词升序排列)

输入

输入格式为每行一个单词,单词长度不超过20,单词之前无其他符号,单词之后直接换行 
读取输入直到输入结束(不超过50行)

输出

样例输入

red
red
blue
green

样例输出

blue 1
green 1
red 2

#include <iostream>#include <cstdio> #include <cstring> #include <cmath>   using namespace std;  int main(){    int n=0,i,t,k,a[60];    char b[60][30],c[30];             while(scanf("%s",b[n])!=EOF){        a[n]=1;          n++;       }               for(i=0;i<n;i++){        for(t=i+1;t<n;t++){            if(a[i]==0)continue;             if((strcmp(b[i],b[t])==0)){                a[i]+=1;                a[t]=0;                }        }        }    for(i=0;i<n-1;i++){        for(t=i+1;t<n;t++){            if(a[i]>a[t])   {                strcpy(c,b[i]);                strcpy(b[i],b[t]);                strcpy(b[t],c);                k=a[i];a[i]=a[t];a[t]=k;            }                }        }          for(i=0;i<n-1;i++){        for(t=i+1;t<n;t++){            if((a[i]==a[t])&&(strcmp(b[i],b[t])>0))    {                strcpy(c,b[i]);                strcpy(b[i],b[t]);                strcpy(b[t],c);                k=a[i];a[i]=a[t];a[t]=k;            }              }        }          for(i=0;i<n;i++)    {        if(a[i])printf("%s %d\n",b[i],a[i]);        }                                                                                                        return 0;}



原创粉丝点击