【题解】洛谷1598 垂直柱状图

本题地址: http://www.luogu.org/problem/show?pid=1598

题目描述

写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过72个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。

输入输出格式

输入格式:

四行字符,由大写字母组成,每行不超过72个字符

输出格式:

由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。

输入输出样例

输入样例#1:
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!
输出样例#1:
                            *
                            *
        *                   *
        *                   *     *   *
        *                   *     *   *
*       *     *             *     *   *
*       *     * *     * *   *     * * *
*       *   * * *     * *   * *   * * * *
*     * * * * * *     * * * * *   * * * *     * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

说明

每行输出后面不允许出现多余的空格。

简单的模拟pascal很好写,C++可能是还不熟所以总是写错,
P代码如下
var i,j,x,m:longint;
 s:string;
 a:array[0..27]of longint;
function max(a,b:longint):longint;
 begin
  if a>b then exit(a)
   else exit(b);
 end;
begin
fillchar(a,sizeof(a),0);
m:=0;
for j:=1 to 4 do
 begin
  readln(s);
  for i:=1 to length(s) do
   if (s[i]>='A')and(s[i]<='Z') then
    begin
     x:=ord(s[i]-'A')+1;
     inc(a[x]);
     m:=max(a[x],m);
    end;
 end;
for i:=1 to m do
 begin
  for j:=1 to 25 do
   begin
    if m-a[j]
     write('*')
      else write(' ');
    write(' ');
   end;
  if m-a[26]
   writeln('*')
    else writeln(' ');
 end;
for i:=1 to 25 do
  write(chr(ord('A')-1+i),' ');
writeln('Z');
end.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值