我已经开始学习C编程语言了。如何打印水平和垂直直方图?
答案 0 :(得分:2)
只是因为我今晚很无聊:
#include <stdio.h>
int main(void) {
char str[1024];
int count[26] = {};
fgets( str, sizeof str, stdin );
for(int i=0; str[i]; ++i)
{
count[tolower(str[i])-'a'] += !!isalpha(str[i]);
}
for(int i=0; i<sizeof count / sizeof *count; ++i)
{
printf("%c: %.*s\n", i+'a', count[i], "*************************************************");
}
return 0;
}
<强>输入:强>
游泳运动员在周三举行的1500米自由泳比赛中创造了新的世界纪录,在印第安纳波利斯举行的2018年TYR Pro游泳系列赛中获得第一名。根据NBC Sports的Nick Zaccardi,她发布的时间为15:20.48,比2015年创下的记录好5秒。
<强>输出:强>
Success #stdin #stdout 0s 4456KB
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: *
输出显示字母e
是最常见的,字母j
,q
和x
在示例文字中根本不显示。< / p>