《Linux C 编程一站式学习》学习日记 5 数组

Linux C编程:随机数直方图与字符串及嵌套数组解析
本文介绍了如何使用C语言在Linux环境下绘制随机数直方图,通过示例程序展示了如何生成并打印直方图。同时,探讨了字符串的特性,特别是其不可变性,以及嵌套数组的概念。代码示例中包含了随机数生成、直方图绘制和嵌套数组的使用。

《Linux C 编程一站式学习》数组


前言

  • 数字数组
  • 字符串
  • 嵌套数组

ps:直接看例题程序吧


一、随机数绘制直方图

/* 题目:1、补完本节直方图程序的main函数,以可视化的形式打印直方图。例如上一节统计20个随机数的结果是:
0 1 2 3 4 5 6 7 8 9
* * * * * * * *
* * * * * * *
* * *
*
 * 
 */

/* 在0~BOUND范围内产生N个随机数,生成直方图 */


#include <stdio.h>
#include <stdlib.h>     /* 产生随机数 */
#include <time.h>       /* 获取当前时间 */


#define N 20
#define BOUND 10
int a[N];

/* 产生0~upper_bound范围随机数 */
void gen_random (int upper_bound)
{   
    int i;
    srand((unsigned)time(NULL));
    for ( i=0; i<N; i++ )
        a[i] = rand() % upper_bound;
}


int main (void)
{
    int i, histgram[BOUND] = {};

    gen_random(BOUND);
    for( i=0; i<N; i++)
        ++histgram[a[i]];
    printf("0=%d\t1=%d\t2=%d\t3=%d\t4=%d\t5=%d\t6=%d\t7=%d\t8=%d\t9=%d\n", histgram[0], histgram[1], histgram[2], histgram[3], histgram[4], histgram[5], histgram[6], histgram[7], histgram[8], histgram[9]);

    i=N;
    while( i>0 )
    {
        int j;
        for( j=0; j<BOUND; j++)
        {
            if( histgram[j] > 0 )
            {
                histgram[j]--;
                printf("*");
                i--;
            }
            printf("\t");
        }
        printf("\n");
    }
    return 0;
}

在这里插入图片描述

二、字符串与嵌套数组

在这里插入图片描述

这里要特别注意:不能通过下标修改字符串的内容因为 字符串是常量(const)存储在静态存储区,指针指向静态区,但静态区无法修改因此不能更改;但是若拷贝入一个字符数组相当于放入栈中,那么就可以修改。附大佬分析

嵌套数组

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值