C++第五单元 数组

本教程深入讲解C++中的一维数组,包括定义格式、输入输出、插入删除、查找统计、排序算法及应用实例。通过斐波那契数列、站队问题、商品排序等例子,阐述数组在编程中的重要性与使用技巧。
摘要由CSDN通过智能技术生成

第1课 一维数组的定义

数组: 为了表示同一批对象的统一属性。

定义格式: 类型标识符 数组名[常量表达式];

(类型标识符可以为任何基本数据类型或结构体;数组名必须是合法的标识符;常量表达式的值为数组元素个数。)

int d[50],g[100];
int a[5*10];
#define N 50
int b[N];

引用数组的格式: 数组名[下标]

(下标只能为整型常量或整型表达式,值必须在数组定义的下标范围内,不能一次引用整个数组,只能逐个引用数组的单个元素。)


第2课 一维数组的输入与输出

利用循环语句逐个输出数组元素,例:

int h[100];
for(i=0;i<100;i++) cout<<h[i];

数组赋值:

​键盘读入

int h[100];
fot(i=0;i<100;i++) cin>>h[i];
  • ​直接赋值
    int h[100],a[20];
    for(i=0;i<100;i++) h[i]=0;
    for(i=0;i<20;i++) a[i]=i*2+1;

     

  • ​“整体”赋值

 ①memset函数:“按字节”赋值,一般用于char型数组,若是int类型的数组,一般赋值为0或1。使用前包含头文件#include<cstring>。

②fill函数:“按元素”赋值,可以是整个数组或部分连续元素,可以赋任何值。需包含头文件#include<algorithm>。

可在定义数组的同时,给所有或部分元素赋值,例:

int a[10]={0,1,2,3,4,5,6,7,8,9};
int a[10]={0,1,2,3,4}; //部分赋初值,后面的元素自动初始化为0
int a[]={1,2,3,4,5};//不定义数组长度,直接根据赋值个数定

经典例题:走楼梯

【问题分析】

假设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<cstdio>
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;
}

第3课 一维数组的插入删除

插入操作时应注意将数组定义的足够大。

例:插队问题

【问题分析】

N个人的排队情况可以用数组q表示,q[i]表示排在第i个位置上的人。定义数组时多定义一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值