| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 403 人关注过本帖
标题:打印输入中各个字符出现的频率,结果存在bug
取消只看楼主 加入收藏
日寂
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2013-11-1
结帖率:81.82%
收藏
已结贴  问题点数:5 回复次数:0 
打印输入中各个字符出现的频率,结果存在bug
程序代码:
//问题:输出结果中,直方图按照由小到大排列,不论所对应的字符类别原本频率
#include<stdio.h>
int max(int x,int y)
{
    int z;
    z=(x>y)?x:y;
    return (z);
}
int main()
{
    char input[100];
    int i,top;
    int letter,space,number,other;//分别用以存放字母数、空格数、数字数及其它字符数
    letter=space=number=other=0;
    printf("请输入一段字符:\n");
    gets(input);//输入一段字符
    for(i=0;input[i]!='\0';i++)//计算各类字符的数量
    {
        if(input[i]>='0' && input[i]<='9') number++;
        else if((input[i]>='a' && input[i]<='z')||(input[i]>='A' && input[i]<='Z')) letter++;
        else if(input[i]==' ') space++;
        else other++;
    }
    top=max(other,max(number,max(space,letter)));
    printf("以下为输入中各字符出现频率的直方图:\n");
    for(;top>0;top--)
    {
        printf("%-4d",top);
        if(letter>=top) printf("*\t");
        if(space>=top) printf("*\t");
        if(number>=top) printf("*\t");
        if(other>=top) printf("*\t");
        putchar(10);
    }
    printf("    L\tS\tN\tO\n");
    return 0;
}


[ 本帖最后由 日寂 于 2014-1-22 21:18 编辑 ]
搜索更多相关主题的帖子: 直方图 letter return number include 
2014-01-22 21:15
快速回复:打印输入中各个字符出现的频率,结果存在bug
数据加载中...
 
   



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

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