单词统计无输出
题目描述编写一个程序,根据单词的出现频率降序打印出所输入的的各个单词。每个单词前标有它的计数值。
输入
各个单词,输入0则表示单词结束
输出
降序打印单词出现的频率和单词。单词频度相同,按出现顺序输出。
样例输入
bad
good
bad
cute
how
good
good
0
样例输出
3 good
2 bad
1 cute
1 how
如题,一直输入没有输出,我在论坛上找了几种不同的输入格式都是一样。。。请大家帮忙看看
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
#include<string.h>
int main()
{
char a[20][20],b[20],tp[20];
int i,j,n,max;
while(1)
{
n=0;
scanf("%s",b);
if(strcmp(b,"0")==0)
break;
strcpy(a[n],b);
n++;
}
for(i=0;i<n;i++)
tp[i]==1;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp(a[i],a[j])==0&&tp[i]!=1)
{
tp[i]++;
tp[j]=-1;
}
}
}
max=tp[0];
for(i=0;i<n;i++)
if(tp[i]!=1&&tp[i]>max)
max=tp[i];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(max<=0)
break;
if(tp[j]==max)
printf("%d %s\n",max,a[j]);
}
max--;
}
return 0;
}