【学习笔记】数组

知识点

概念
按顺序排列的一组同种类型的变量构成的集合。一个数组在内存中占一片连续的存储单元。
定义
数据类型 数组名 [整数1] [整数2] …… [整数n];
如: int a[5]
引用
数组名 [下标]
(1)数组下标(index)都是从0开始
(2)下标既可是常量,也可是整型表达式
(3)允许快速随机访问
输入与输出
一、采用循环语句结合下标变化,逐个元素进行。
(1) 键盘逐个读入数组元素值;
(2) 给每个数组元素直接赋值;
二、函数赋值
(1)memset 函数
memset 函数是给数组“按字节”进行赋值,一般用在 char 型数组中,如果是 int 类型的数组,一般赋值为 0 和 -1。使用前需要包含头文件:#include 。
(2)fill 函数
fill 函数是给数组“按元素”进行赋值,可以是整个数组,也可以是部分连续元素,可以赋任何值。使用前需要包含头文件:#include 。
例如:
#include
#include
using namespace std;
int main(){
int a[10],b[10],c[10],d[10],i;
memset(a,0,sizeof(a)); // 将a数组所有元素均赋值为0
for(i = 0; i < 9; i++) cout << a[i] << “ “ ;
cout << a[9] << endl;
memset(b,1,sizeof(b));// 将 b 数组所有元素均赋值为
//二进制数 20+28+216+224=16843009
for(i = 0; i < 9; i++) cout << b[i] << “ “ ;
cout << b[9] << endl;
memset(c,0,5);
//将 c 数组前 5 个字节都赋值为 0,所以只能确定 c[0]
//等于0,其他元素值不确定
for(i = 0; i < 9; i++) cout << c[i] << “ “ ;
cout << c[9] << endl;
fill(d,d+5,8);
//将 d 数组前 5 个元素都赋值为 8,其他元素值不确定
for(i = 0; i < 9; i++) cout << d[i] << “ “ ;
cout << d[9] << endl;
return 0;
}
插入与删除元素
插入一个元素,需要先找到插入的位置(假设下标为 x),将这个元素及其之后的所有元素依次往后移一位(注意要从后往前进行操作),再将给定的元素插入(覆盖)到位置 x。
删除某一个元素,也需要先找到删除的位置(假设下标为 x),将下标为 x+1 及其之后的所有元素依次向前移一位,覆盖原来位置上的元素。
例如:
有 n 个人(每个人有一个唯一的编号,用 1~n 之间的整数表示)在一个水龙头前排队准备接水,现在第 x 个人有特殊情况离开了队伍,求第 x 个人离开队伍后的排队情况。
【输入格式】
第一行 1 个正整数 n,表示有 n 个人,2<n≤100。5
第二行包含n个正整数,之间用一个空格隔开,表示排在队伍中的第1个到第n个人的编号。
第三行包含 1 个正整数 x,表示第 x 个人离开队伍,1≤x≤n。
【输出格式】
一行包含 n-1 个正整数,之间用一个空格隔开,表示第 x 个人离开队伍后的排队情况。
【输入样例】
7
7 2 3 4 5 6 1
3
【输出样例】
7 2 4 5 6 1
#include
using namespace std;
int main(){
int n,i,x,q[102];
scanf( “ %d ” ,&n);
for(i = 1; i <= n; i++) scanf( “ %d ” ,&q[i]);
s

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值