帮我看一下这个程序的问题?
#include <stdio.h>#include <stdlib.h>
#include <string.h>
void Swap(int *x,int *y)
{
int temp;
temp= *x;
*x= *y;
*y=temp;
}
int main()
{
int a[26]={0};
char b[26];
int A,M;
char str[1000];
int k,i,j,t,h;
gets(str);/*给定一个字符串*/
A=strlen(str);/*计算字符串的长度*/
for (h=0;h<=25;h++)
b[h]=h+'a';
for (k=0;k<=A;k++)
if ('a'<=(char)(str[k])&&(char)(str[k])<='z')
a[(char)(str[k])-'a']++; /*计算每个字符出现的频率*/
for (i=0;i<25;i++)
{
t=i;
for (j=i+1;j<26;j++)
{
if (a[j]>a[t])
{
Swap(&t,&j);
Swap(&b[t],&b[j]);
}
}
}
for (i=0;i<26;i++)
if (a[i]!=0)
printf("%c %d\n",b[i],a[i]);
}