hdu 2708

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2708

题意:给4行,统计大写字母的频率,然后按图示输出。

mark:此题很坑,主要表现在:1.每行行末的空格不可以输出!2.输入是多组!!!

wa了n次。一开始找max_row的时候初始化各种改错。。。

代码:

 1 # include <stdio.h>
 2 # include <string.h>
 3 
 4 
 5 int tab[300] ;
 6 char str[100] ;
 7 int max_tab[300] ;
 8 
 9 
10 int main ()
11 {
12     int i, j ;
13     int max_row ;
14     while (1)
15     {
16     max_row = 0 ;
17     memset (tab, 0, sizeof(tab)) ;
18     for (i = 0 ; i < 4 ; i++)
19     {
20         if (gets (str) == NULL) return 0 ;
21         for (j = 0 ; str[j] ; j++)
22         {
23             if (str[j] >= 'A' && str[j] <= 'Z'){
24                 tab[str[j]]++ ;
25                 if (tab[str[j]] > max_row) max_row = tab[str[j]] ;
26             }
27         }
28     }
29     
30     max_tab['Z'] = tab['Z'] ;
31     
32     for (i = 'Z'-1 ; i >= 'A'; i--)
33         if (tab[i]>max_tab[i+1])
34             max_tab[i] = tab[i] ;
35         else max_tab[i] = max_tab[i+1] ;
36 
37 
38     for (i = 0 ; i < max_row ; i++)
39     {
40         for (j = 'A' ; j <= 'Z' ; j++)
41         {
42             if (j != 'A') putchar (' ') ;
43             if (i < max_row - tab[j]) putchar (' ') ;
44             else putchar ('*') ;
45             if (i < max_row - max_tab[j+1]) break ;
46         }
47         printf ("\n") ;
48     }
49     putchar ('A') ;
50     for (j = 'B' ; j<='Z' ; j++) printf (" %c", j) ;
51     printf ("\n") ;
52     }
53     return 0 ;
54 }

转载于:https://www.cnblogs.com/lzsz1212/archive/2012/06/10/2543796.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值