| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 994 人关注过本帖
标题:求教,万分感谢!
只看楼主 加入收藏
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
写了一个,谨作参考。
程序代码:
/*------------------------------------------------------------------------------

        输入一串字符,统计并输出字符串中出现频率最高的字母及出现次数,可能有多个
    出现频率最高的字母,字母不区分大小写,输出时用大写字母,输出格式printf("%c:
    %d\t",     );程序说明:用数组来统计各字母个数。如:用a[0]统计’a’字母的个数,
    a[25]统计’z’字母的个数.

------------------------------------------------------------------------------*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#define N 100
#define Y 26
int cmp(const void *a,const void *b)
{
    return(*(char *)a-*(char *)b);
}
void SWITCH(char *a) /* 字符变换,全部变换成大写字母 */
{
    while(*a)
    {
        *a=toupper(*a);
        a++;
    }
}
void sta()
{
    char _a[N],*a;
    int _b[Y]={0},max,i,*b;
    a=_a;
    b=_b;
    puts("input a[]:");
    gets(a); /* 输入 */
    SWITCH(a);  /* 变换 */
    qsort(a,strlen(a),sizeof(a[0]),cmp); /* 排序 */
    while(*a)
    {
        if(*a>=65&&*a<=90&&*a==*(a+1))
            b[*a-65]++;
        a++;
    } /* 记数器数组 b 赋值 */
    for(max=*b,i=0;i<Y;++i)
        if(max<*(b+i))    max=*(b+i); /* 找出最大值 */
    for(i=0;i<Y;++i)
        if(max==b[i])    printf("%c--%d\n",i+65,b[i]+1); /* 输出 */
}
int main(void)
{
    sta();
    return 0;
}

2008-11-25 22:51
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
哈哈!
真是高手云集啊!

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-25 23:04
快速回复:求教,万分感谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022099 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved