数组总结

##第五章 数组总结
第一课 一维数组的定义
1.一维数组的定义
定义一维数组的格式如下:
类型标识符 数组名[常量表达式]
类型标识符可以是任何基本数据类型,也可以是结构体等构造类型,相同类型的数组可以一起定义,数组名必须是合法的标识符,常量表达式的值即为数组元素的元素。数组名[下标],下标从0开始,数组名本身是数组的首地址 不能为变量,一且定义, 不能改变大小,数组定义后的初值仍然是随机数,一般需要我们来初始化。下标可以是常量,也可以是整型表达式,允许快速随机访问,下标不能越界。
2 .一维数组的元素引用
数组定义好后,就可以引用数组中的任意一个元素。
3.一维数组的存储结构数组在计算机内存单元中是连续存储的。
第二课 一维数组的输入与输出
一维数组的输入与输出等操作,都是采用循环语句结合下标变化逐个元素进行。
C++里还提供了两个函数给数组“整体”赋值。(1)memset函数memset函数是给数组“按字节”进行赋值,一般用在char型数组中,如果是int类型的数组,一般赋值为0和-1。使用前需要包含头文件:#include.
(2)fill函数fill函数是给数组“按元素”进行赋值,可以是整个数组,也可以是部分连续元素,可以赋任何值。使用前需要包含头文件:#include. 另外,C++还支持在定义数组的同时,给所有或者部分元素赋值。
1.以走楼梯为例:
【问题分析】
假设f(i)表示走到第i级楼梯的走法,则走到第i(i>2)级楼梯有两种可能:一种是从第i-1级楼梯走过来;另一种是从第i-2级楼梯走过来。根据加法原理,f(i)=f(i-1)+(i-2),边界条件为:f(1)=1,f(2)=2。具体实现时,定义一维数组f,用赋值语句从前往后对数组的每一个元素逐个赋值。本质上,f(i)构成了斐波那契数列。

#include
using namespace std;
int main()
{
int n,i,f[31];
scanf("%d",&n);
f[1]=1;f[2]=2;
for (i=3;i<=n;i++)
f[i]=f[i-1]+f[i-2];
for (i=1;i<n;i++)
printf("%d",f[i]);
printf("%d\n",f[n]);
return 0;
}
2.以幸运数的划分为例:
【问题分析】
分析发现,1~1000范围内的幸运数只有14个。于是,将这14个·幸运数直接存储到一个数组lucky中,再穷举判断其中有没有一个数能整除。

#include
using namespace std;
int main()
{
int n,lucky[14]={4,7,44,47,74,77,444,447,
474,477,744,747,774,777};
scanf("%d",&n);
bool flaq=flase;
for (int i=0;i<14;i++)
if (n%lucky[i]==0)
flag=true;
if(flag)
printf(“YES\n”);
else printf(“NO\n”);
return 0;
}
第三课 一维数组的插入删除
在实际操作中,经常需要在数组中插入一个元素,或者删除数组中的某一个元素,称为数组的插入操作或者删除操作。插入操作时要注意把数组的下标定义的足够大
1.以插队问题为例:
【问题分析】
N个人的排队情况可以用数组q表示,q[i]表示排在第i个位置上的人。定义数组时多定义一个位置,然后重复执行:q[i+1]=q[i],其中i从n-x。最后再执行q[x]=q

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值