博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
baidu c++吧上的一道题
阅读量:5084 次
发布时间:2019-06-13

本文共 1405 字,大约阅读时间需要 4 分钟。

题目在:

统计字母个数:
程序输入一个字符串(长度不超过100),全是小写字母.
统计小写字母出现的次数,并用要求的图表示出来.
测试数据:

Input:

sadjhasdhqwpopeepomcxnnbladkjkfjasjas

Output:

@
@                 @                 @
@     @           @           @     @
@     @ @     @   @ @     @ @ @     @
@ @ @ @ @ @   @   @ @ @ @ @ @ @ @   @       @ @
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
 
注意:
在字符串中每个小写字母的个数不会超过20个.
编程语言:C/C++.

_________________________________________________

题目意思就是每个字母有多少个,上面就输出多少@。我用一个长度为26的数组(数组int count[26])来保存每个字母的个数,然后用一个26*20(因为说了每个字母个数都不超过20个)的数组(数组chars)来记录最后输出的结果,这个数组中的刚开始初始化为空字符,每次碰到一个字母就将其赋值为@,最后只要把这个数组从最高的一排向下输出就得到结果了,但是上面好多排都可能是空字符,要从第一排含有至少一个非空字符(即@)的向下输出,所以我用了一个变量(int max_count)来记录这一排的位置。程序如下:

#i nclude
<
iostream
>
 
using
namespace
std;
#define
COUNT 20
void
output(
char
*
p)
{
    
char
chars[
26
][COUNT];
    
for
(
int
i
=
0
;i
<
26
;i
++
)
        
for
(
int
j
=
0
;j
<
COUNT;j
++
)
            chars[i][j]
=
'
'
;
    
int
count[
26
];
    
for
(
int
i
=
0
;i
<
26
;i
++
)
        count[i]
=
0
;
    
int
max_count
=
0
;
    
int
index
=
0
;
    
int
tmp
=
0
;
    
while
(
*
p
!=
'
\0
'
)
    {
        index
=*
p
-
'
a
'
;
        tmp
=++
count[index];
        
if
(max_count
<
tmp)
            max_count
=
tmp;
        chars[index][tmp
-
1
]
=
'
@
'
;
        p
++
;
    }
    
for
(
int
i
=
max_count
-
1
;i
>=
0
;i
--
)
    {
        
for
(
int
j
=
0
;j
<
26
;j
++
)
            cout
<<
chars[j][i];
        cout
<<
endl;
    }
    
for
(
char
i
=
'
a
'
;i
<=
'
z
'
;i
++
)
        cout
<<
i;
}
int
main()
{
    
char
*
str
=
"
sadjhasdhqwpopeepomcxnnbladkjkfjasjas
"
,
*
p
=
str;
    output(p);
    getchar();
    
return
0
;
}

 

转载于:https://www.cnblogs.com/lzjsky/archive/2011/01/16/1936839.html

你可能感兴趣的文章
左手坐标系和右手坐标系
查看>>
solr后台操作Documents之增删改查
查看>>
http://yusi123.com/
查看>>
文件文本的操作
查看>>
Ubuntu linux下gcc版本切换
查看>>
记一次Web服务的性能调优
查看>>
jQuery.form.js使用
查看>>
(转)linux sort,uniq,cut,wc命令详解
查看>>
关于ExecuteNonQuery执行的返回值(SQL语句、存储过程)
查看>>
UVa540 Team Queue(队列queue)
查看>>
mysql数据增删改查
查看>>
shell中下载最新版本或指定版本的办法(Dockerfile 中通用)
查看>>
极客时间-左耳听风-程序员攻略-分布式架构工程设计
查看>>
akka之种子节点
查看>>
不知道做什么时
查看>>
matlab 给某一列乘上一个系数
查看>>
密码学笔记——培根密码
查看>>
Screening technology proved cost effective deal
查看>>
MAC 上升级python为最新版本
查看>>
创业老板不能犯的十种错误
查看>>