POJ2136-Vertical Histogram(C语言实现)

#include <stdio.h>

#include <stdlib.h>

#define MAX_CHARS_PERLINE 72


int main(void)

{

    int i, j, lines, max_times, num_word[26] = {0};

    char ch;

    lines = 0;

    max_times = 0;

    

    while(scanf("%c", &ch))  //逐字符读入并计数

    {

        if(ch >= 'A' && ch <='Z')

            ++num_word[ch - 'A'];

        if(ch == '\n')

            ++lines;

        if(lines == 4)    //读到第四行结束时跳出循环

            break;

    }

    

    for(i = 0; i <26; ++i)   //计算出现最多次的字母的出现次数

    {

        if(max_times < num_word[i])

            max_times = num_word[i];

    }

    

    for(i = 0; i < max_times; ++i)   //逐层输出(注意题目条件:输出每行左右都不能有多余的空格)

    {

        printf("%c", (num_word[0] >= (max_times - i)) ?'*' :' ');

        for(j = 1; j <26; ++j)

        {

            printf(" %c", (num_word[j] >= (max_times - i)) ?'*' :' ');

        }

        printf("\n");

    }

    //输出底层的A到Z字母(注意题目条件同上)

    printf("%c",'A');

    for(i = 1; i <26 ; ++i)

    {

        ch = 'A' + i;

        printf(" %c", ch);

    }

    printf("\n");

    

    return 0;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值