C语言编程问题2(追加高分)

来源:百度知道 编辑:UC知道 时间:2024/05/16 18:03:46
单词统计
要求:(1)输入任意一段英文。
(2)根据(1)中各单词出现概率的高低输出前5个单词。
(3)具有输入输出界面
最好可以讲解一下,。。

#include"stdio.h"
#include"stdlib.h"

int cmp(const void *a, const void *b)
{
return(*(char *)a-*(char *)b);
}

void main()
{
char str[100],x,*ch,temp_char;
int i=0,j=0,num=1,k=0,count=0,*p,temp_int;
printf("请输入一串英文: ");
x=getchar(); //输入英文
while(x!='\n')
{
str[i]=x;
x=getchar();
i++;
}
str[i]='\0';
qsort(str,i,sizeof(str[0]),cmp);//对英文字符串排序
while(str[j]!='\0')//统计有多少类字符出现
{
if(j!=0&&str[j]!=str[j-1])num++;
j++;
}
ch=new char[num+1];
p=new int[num];
j=0;
while(str[j]!='\0') //把出现的字符以及出现次数分别放在ch数组和p数组里
{
if(j!=0&&str[j]!=str[j-1])
{
ch[k]=str[j-1];
p[k]=count;
k++;
count=0;
}
j++;
count++;
}
ch[k]=str[j-1];p[k]=count;

for(i=0;i&l