Linux C/C++编程一站式学习--以可视化的形式打印直方图

来源:互联网 发布:为知笔记 有道云笔记 编辑:程序博客网 时间:2024/06/05 11:22
#include <stdio.h>#include <stdlib.h>#include <time.h>#define N 20int a[N];void gen_random(int upper_bound){    srand(time(NULL));      //自行制定初值,time(2)表示当前系统时间距19701100: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;}
阅读全文
0 0
原创粉丝点击