C语言高手帮着编一个程序吧,需要用

来源:百度知道 编辑:UC知道 时间:2024/07/02 02:14:29
编写一个程序。当输入不超过60个字符组成的英文文字时。计算机将这个句子中的字幕按照英文字典字母顺序重新排列,排列还偶的单词的长度要与原始句子中的长度相同
要求
1给出算法的时间复杂度
2输出重复最多的三个字母及重复次数(如有相同时间次数都罗列出来)

谢谢大家了!!

#include<stdio.h>
#include"string.h"

# define N 60
# define M 60
int main()
{
char str[N][M],ch,alp[27]="abcdefghijklmnopqrstuvwxyz";
int i=0,j=0,k=0,m,n,l,num[26]={0},max=0;
printf("Please insert your string:");
while(k+1<N&&((ch=getchar())!='\n'))
{ if(ch<='z'&&ch>='a')
++num[ch-'a'];
if(ch!=' ') str[i][j++]=ch;
else{ str[i][j]='\0';i++;j=0;}
k++;
}
str[i][j]='\0';

for(n=0;n<=i;n++)
{
printf("%s ",str[n]);

}
printf("\n");
for(n=0;n<=i;n++)
{
for(m=0;m<(int)strlen(str[n])-1;m++)
for(l=0;l<(int)strlen(str[n])-m-1;l++)
if((str[n][l]>str[n][l+1])&&str[n][l+1]<='z'&&str[n][l+1]>='a')
{ ch=str[n][l];str[n][l]=str[