Java教程

1-14编写一个程序,打印输入中各个字符出现频度的直方图

本文主要是介绍1-14编写一个程序,打印输入中各个字符出现频度的直方图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

/*编写一个程序,打印输入中各个字符出现频度的直方图*/
#include<stdio.h>
int main() {
int i, j, c;
i = j = c = 0;
unsigned int PD[128];
//给统计频度数组赋初始值
for (i = 0; i < 128; i++)
{
PD[i] = 0;
}
while ((c = getchar()) != EOF){
//进行字符匹配
if (c != ' ' && c != '\t' && c != '\n') {
for (i = 0; i < 128; i++) {
if (i == c) {
PD[i]++;
}
}
}
}
/*// 显示水平直方图。
for (i = 0; i < 128; i++)
{
if (PD[i] > 0 && i != '\t' && i != '\n' && i != ' ')
{
printf("%c:", i);
for (j = 0; j < PD[i]; j++) {
printf("*");
}
printf("\n");
}
}
*/
//垂直打印直方图
//取最大值
int max = 0;
for (i = 0; i < 128; i++) {
if (PD[i] > max) {
max = PD[i];
}
}
//外循环打印Y轴
//内循环打印X轴
for (i = max; i > 0; i--) {
for (j = 0; j < 128; j++) {
if (PD[j] > 0) {
if (PD[j] >= i) {
printf("** ");
}
else
printf(" ");
}
}
printf("\n");
}
//打印字符
for (i = 0; i < 128; i++) {
if (PD[i] > 0) {
printf("%-4c", i);
}
}
printf("\n");
//打印字符频次
for (i = 0; i < 128; i++) {
if (PD[i] > 0 ) {
printf("%-4d", PD[i]);
}
}
printf("\n");
}

这篇关于1-14编写一个程序,打印输入中各个字符出现频度的直方图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!