C语言_0302笔记_数组:定义/数组的单元/下标/越界/ex:统计个数(classic)

文章介绍了数组的基本概念,包括如何定义数组,如`intnumber[100];`,数组的元素通过下标访问,如`number[cnt]=x;`,并强调了下标的范围和数组越界的潜在问题。文章还展示了如何初始化和遍历数组,以及在编程中使用数组统计数字出现次数的应用场景。
摘要由CSDN通过智能技术生成

初识数组

如何记录很多次输入的数?——数组

定义数组:

int number [100] ;//定义数组 数组大小为100
//定义了一个变量叫number,这个变量是一个数组,这个数组的每个单元都是一个int,数组的大小是100(可以放100个int)
number [cnt] = x;//对数组里的元素赋值:number数组里面的第cnt个元素赋值为x

遍历:

就是将数组里的每个元素都过一遍或者规定的范围内过一遍。一般从0开始!!!

数组的具体

定义数组

  • <类型>变量名称[元素数量];

  • 如int grades[100] //grade[ ]里面的每一个元素都是int

  • double weight [20]

  • 需要注意的是:元素数量必须是整数

// C99之前元素数量必须在编译时确定,C99之后可以用变量来定义数组大小

数组的含义

  • 是一种容器(放东西的东西) ,有一些特点:

  • 所有的元素都是同一类型,在定义数组时就定义好了

  • 一旦创建就不能改变其大小

  • 在计算机内部内存中数组中的元素是按照顺序依次排列

编程语言可提供容器能力的大小和语言能力大小相挂钩

具体示例:

int a[10];
  • 一个int类型的数组

  • 其中有10个单元,依次为a[0],a[1],a[2]...a[9]

  • 每个单元都是一个int型变量

a[2]=a[1]+2; //a[1]的值读出来 +2以后,写入到a[2]
  • 像这样,数组单元可以出现在赋值号的左边或右边,左边称左值,右边称右值

数组的下标 a[1] a[2]

  • 我们将使用数组时放在[ ]中的数字叫做下标或索引下标从0开始计数

  • 数组单元从0开始,最大下标是数组大小减一

数组越界?

  • 有效的下标范围

  • segementation fault——数组下标越界

  • 因此程序员必须保证只使用有效的下标值:[0,数组大小-1]

  • 这次运行ok 下次运行不行;在我电脑上可以,在你电脑上不行——数组越界/指针出错

int a[10];
a[10]=0;
//a[10]数组最大单元是a[9],越界了
  • 是否能创建一个长度为0的数组?//可以,但没必要:),当定义一个长度为0的数组如a[0],其下标最大为-1,可以编译,但没有任何用处

数组例子:统计个数

需要记录每个数字吗?当然不需要,只需要记录每个数字出现的次数。

#include<stdio.h>
int main(void)
{
    int x;
    const int NUMBER = 10;//定义数组大小 
    int count[NUMBER];//定义数组
    int i;
 
for(i=0;i<NUMBER;i++)
{
    count[i]=0;
} //初始化数组 让数组里面的每一个元素都等于0!!! 必须初始每一个数组!!!
 
    scanf("%d",&x);//读入的数字作为下标
    while( x! = -1 )//当输入-1时停止读入
{
        if(x>=0&&x<=9)//如果0-9 有效区间内
        {
            count[x]++;//数组参与运算,count[3]从0加到1
        }
        scanf("%d",&x);//每次都要继续要求输入!!!!!!
}
    for(i=0;i<NUMBER;i++)//遍历数组 依次输出  
{
    printf("%d出现了%d次",i,count[i]);
}
return 0;
}

用到数组的必要环节

数组大小——定义数组——初始化数组——数组参与运算——遍历数组输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值