c - 如何在 C 中打印水平和垂直直方图?
问题描述
我已经开始学习 C 编程语言。如何打印水平和垂直直方图?
解决方案
只因为我今晚很无聊:
#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;
}
示例运行:
输入:
这位游泳运动员在周三的 1,500 米自由泳比赛中创造了新的世界纪录,在印第安纳波利斯举行的 2018 年 TYR Pro 游泳系列赛中获得第一名。根据 NBC 体育频道的尼克·扎卡迪 (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
根本没有出现在示例文本中。
推荐阅读
- python - 混淆矩阵只需要 0 和 1 类
- c# - 如何检测和删除文本文件中包含特定字母后跟随机数的行?
- gmail - 为 Gmail API 使用 Google 标记:Json-ld 或微数据不起作用
- python-3.x - 如何将更多变量打印到文件中?
- swift - SwiftUI:在输入之前将 TextField 大小扩展到字体大小
- sql - 无法理解这个查询的逻辑
- html - 移除 flex 容器左右两侧的间隙
- python - 从熊猫数据框中提取条件单元格值的 Pythonic 方法是什么
- vb.net - 有没有办法在 JOINED 查询上动态更新 gridview 值?
- java - 如何使用 java 而不是 gcloud 命令获取 gcloud 的 id_token