#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 20
int a[N];
void gen_random(int upper_bound)
{
srand(time(NULL)); //自行制定初值,time(2)表示当前系统时间距1970年1月1日00:00:00的秒数
int i;
for(i = 0;i < N;i++)
a[i] = rand() % upper_bound;
}
int howmany(int value)
{
int count = 0,i;
for(i = 0;i < N;i++)
if(a[i] == value)
++count;
return count;
}
int main(void)
{
int i,j,histogram[10]={0};
gen_random(10);
for(i = 0;i < N;i++){
histogram[a[i]]++;
// histogram[i] = howmany(i);
// printf("%d\n",histogram[i]);
}
// for(i = 0;i < 10;i++)
// printf("%d\n",histogram[i]);
//水平打印
printf("水平方向:\n");
for(i = 0;i < 10;i++){
printf("%d ",i);
for(j = 0;j < histogram[i];j++)
printf("* ");
printf("\n");
}
/*方法一
//垂直打印
printf("\n垂直方向:\n");
int max=0;
for(i = 0; i < 10;i++){
max = (max > histogram[i]) ? max : histogram[i];
printf("%d ",i);
}
printf("\n\n");
for(i = 0;i < max;i++){
for(j = 0;j < 10;j++){
if(histogram[j] > 0){
printf("* ");
--histogram[j];
} else
printf(" ");
}
printf("\n");
}
*/
//方法二
printf("\n垂直打印:\n");
int k,l;
for(j = 0;j< 10;j++)
printf("%d ",j);
printf("\n");
for(l = 0;l<N;l++){
for(k = 0;k < 10;k++){
if(histogram[k]>0){
printf("* ");
histogram[k]--;
}
else{
printf(" ");
}
}
printf("\n");
};
printf("\n");
return 0;
}
Linux C/C++编程一站式学习--以可视化的形式打印直方图
最新推荐文章于 2022-03-16 22:06:59 发布