帮我看一下这个程序的问题!
#include <stdio.h>#include<stdlib.h>
#include<string.h>
int main()
{
int a[26]={0};
int A,M,N,P,Q;
char str[1000];
int k,i,j;
gets(str);/*给定一个字符串*/
A=strlen(str);/*计算字符串的长度*/
for (k=0;k<=A;k++)
if ('a'<=(char)(str[k])&&(char)(str[k])<='z')
a[(char)(str[k])-'a']++; /*计算每个字符出现的频率*/
for (i=0;i<=24;i++)
{
for (j=i+1;j<=25;j++)
{
if (a[j]>a[i])
{
M=a[j];
a[j]=a[i];
a[i]=M;
P=str[j]+a;
str[j]=str[i];
str[i]=P;
}
if (a[j]=a[i])
{
if (j<i)
{
N=a[j];
a[j]=a[i];
a[i]=N;
Q=str[j]+a;
str[j]=str[i];
str[i]=Q;
}
}
}
}
for (i=0;i<=25;i++)
printf("%c %d\n",i+'a',a[i]);
}
我要对1000个a到z之间的任意排列算出每个字母的频率,并按顺序打出,这个程序好像有点问题。。。高手来帮忙改一下啊。。。