数组

一,一维数组的定义
数组就是一组相同类型的变量,它们往往都是为了表示同一批对象的统一属性,如一个班级所有同学的身高、全球所有国家的人口数等。数组可以是一维的,也可以是二维或多维的。在数学中,以用h(1≤i≤50)表第i个同学的身高,i为编号、在C++中,使用一维数组时,一般是从0开始编号,h[i]就表示第i+1个同学的身高,i称为“下标变量”。读入50个同学的身高,语句就可以这样书写:
for(i=0;i<=49;i++) cin>>h[i];
1,一维数组的定义
定义一维数组的格式如下:
类型标识符 数组名[常量表达式];
其中,类型标识符可以是任何基本数据类型也可以是结构体等构造类型,相同类型的数组可以一起定义。数组名必须是合法的标识符常量表达式的值即为数组元素的个数。
例如,“inth[50];”就表示定义一个一维数组h,共有50个元素,它们的编号从0开始到49,每个元素都是int类型。
假设要存储10000个人的中考成绩和性别,可以定义两个数组:
int score[10000]😕/或者float score[10000];
bool xb[10000]//或者char xb[10000];
2,一维数组的元素引用
数组定义好后,就可以“引用”数组中的任意一个元素。引用格式为“数组名[下标]”,如h[5],h[i2+1]等。其中,下标只能为整型常量或整型表达式,值必须在数组定义的下标范围内,否则会出现"下标越界错误"。
需要注意的是,不能一次引用整个数组,只能逐个引用数组的单个元素。例如,对于一个数组a来说,语句“cout<<a;”是不合法的。
3.一维数组的存储结构
数组在计算机内存单元中是连续存储的。程序一旦执行到数组的定义语句,就会开辟出若干字节的内存单元。例如,对于已定义的数组“inth[50];”,假设系统给它分配的内存单元地址从1000开始,则“1000”就称为该数组。
二,一维数组的输入与输出
对数组的操作只能逐个引用单个元素所以,维数组的输入输出等操作都是采用循环语句结合下标变化逐个元素进行。
例如,输出一个数组可以写成
inth[100];
for(i=0;i<100;i++) cout<<h[i];
那么,批量数据如何一次性输入到一维数组呢?一般有以下两种方法
(1)键盘读人
例如:
int h[100];
for(i=0;i<100;i++) cin>>h[i];
(2)直接赋值
例如:
inth[100],a[20];
for(i=0;i<100;i++) h[i]=0;
for(i=0;i<20;i++) a[i]=i
2+1;
C++里还提供了两个函数给数组“整体”赋值。(1)memset函数
memset函数是给数组“按字节”进行赋值,一般用在char型数组中,如果是int类型的数组,一般赋值为0和-1。使用前需要包含头文件:
#include。
例如,“memset(h,0,sizeof(h));”就是将h数组所有元素均赋值为0
(2)fill函数
fill函数是给数组“按元素”进行赋值,可以是整个数组,也可以是部分连续元素,可以赋任何值。使用前需要包含头文件#include。例如,
“fill(a,a+10,5);”就是将a数组的前10个元素赋值为5
另外,C++还支持在定义数组的同时,给所有或者部分元素赋值。例如:
inta[10]={0,1,2,34,5,6,7,8,9};
inta[10]={0,1,2,3,4};//部分赋初值,后面的元素自动初始化为0
inta[10]={1,2,3,4,5}//不定义数组长度,直接根据赋值个数定
例题:走楼梯
【问题描述】一个楼梯有n级,小苏同学从下往上走,一步可以跨一级,也可以跨两级。问:他走到第级楼梯有多少种走法?
【输入格式】一行一个整数n,0<n≤30。
【输出格式]一行n个整数,之间用一个空格隔开,表示走到第1、第2级、…第n级分别有多少种走法。
【输入样例】2
【输出样例】1 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值