如何在C中打印水平和垂直直方图?

时间:2018-05-17 00:56:23

标签: c

我已经开始学习C编程语言了。如何打印水平和垂直直方图?

1 个答案:

答案 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是最常见的,字母jqx在示例文字中根本不显示。< / p>