作业帮 > 综合 > 作业

给你N个单词,按字典序输出每个单词和它出现的次数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/24 21:53:24
给你N个单词,按字典序输出每个单词和它出现的次数
输入
第一行为一个整数N,表示有N个单词
接下来每行一个单词(每个单词的长度不超过20)
输出
按字典序输出每个单词和它出现的次数,中间用一空格隔开
用c语言
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
\x09char **a ;
\x09int n,i,j ;
\x09char *p;
\x09char str[20];

\x09scanf("%d", &n );
\x09a=(char **)malloc(sizeof(char**)*n) ;
\x09for( i=0;i<n;i++ )
\x09{
\x09\x09a[i]=(char *)malloc( 20 ) ;
\x09\x09scanf("%s", a[i] ) ;
\x09}
\x09
\x09for( j=0;j<n-1;j++ )
\x09{
\x09\x09for( i=0;i<n-j-1;i++ )
\x09\x09\x09if ( strcmp(a[i],a[i+1])>0 )
\x09\x09\x09{
\x09\x09\x09\x09p=a[i];
\x09\x09\x09\x09a[i]=a[i+1];
\x09\x09\x09\x09a[i+1]=p;
\x09\x09\x09}\x09
\x09}
\x09printf("\n");

\x09strcpy(str,a[0]);
\x09free(a[0]);
\x09j=1;
\x09for( i=1;i<n;i++ )
\x09{
\x09\x09if ( strcmp(a[i],str)== 0 )
\x09\x09\x09j++;
\x09\x09else
\x09\x09{
\x09\x09\x09printf("%s %d\n", str,j );
\x09\x09\x09strcpy(str,a[i]);
\x09\x09\x09j=1;
\x09\x09}
\x09\x09free(a[i]);
\x09}
\x09printf("%s %d\n", str,j );
\x09free(a);
\x09return 0;
}