Linux C编程一站式学习(宋劲杉)-习题作答

第8章:数组

3. 数组应用实例:直方图

习题:1、补完本节直方图程序的main函数,以可视化的形式打印直方图。例如上一节统计20个随机数的结果是:

#include <stdio.h>
#include <stdlib.h>
#define N 20  //预处理 N替换成它的定义20

int a[N];

void gen_random(int upper_bound){
    int i;
    for(i=0;i < N;i++){
        a[i] = rand() % upper_bound;
    }
}

int main(void){
    int i,j, histogram[10] = {0};//不足的部分自动补0
    //生成随机数组
    gen_random(10);
    //统计随机数组中0-9数字出现的个数
    for(i=0;i<N;i++)
        ++histogram[a[i]];
    //打印统计结果
    printf("value\thow_many\n");
    for(i=0;i<10;i++){
        printf("%d\t%d\n",i,histogram[i]);
    }
    printf("\n");
    //打印直方图
    for(i=0;i<10;i++)
        printf("%d\t",i);
    printf("\n");
    for(j=0;j<N;j++){
        for(i=0;i<10;i++){
            if(histogram[i] > 0){
                printf("*\t");
                histogram[i]--;
            }else{
                printf(" \t");
            }
        }
        printf("\n");
    }
    return 0;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容