数组总结

本文详细介绍了C++中一维数组的定义、赋值、输入输出、常见操作,包括如何初始化、赋值、使用memset和fill函数进行整体赋值。此外,还探讨了数组在插入、删除、查找和排序等场景的应用,以及易错点和注意事项。
摘要由CSDN通过智能技术生成

      数组总结

一、单元知识点

     一维数组:

定义

  按顺序排列的一组同类型的变量构成的集合。

使用一维数组可以使代码不亢长 例

cin>>h0>>h1>>•••>>h49;//程序中是不能用省略号来表示的

for( i=0;i<=49;i++ ) cin>>h[ i ];

一维数组的格式:数据类型 数组名 [整数1] [整数2]•••[整数n];

例 int score[10000];//或者float score[10000];

   bool xb[10000];//或者char xb[10000]

 如何使两个数的值相等

方法一,逐个元素赋值

b[0]=a[0]

b[1]=a[1]

b[2]=a[2]

b[3]=a[3]

b[4]=a[4]

方法二,通过循环赋值

int i;

for(i=0;i<5;i++){

b[i]=a[i]

}

输入与输出

C++里提供两个函数给数组“整体”赋值

memset函数  

 memset函数是给数组“按字节”进行赋值,一般用在char型数组后,如果是int类型的数组,一般赋值为0和-1。使用前需要包含头文件:#include<cstring>

例如,“memset(h,0,sizeof(h));”就是将h数组所有元素赋值为0。

2.  fill函数

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

例如,“fill(a,a+10,5);”就是将a数组的前10个元素赋值为5。

例题 

   #include<iostream>

   #include<cstring>

   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 数组所有元素均赋值为

 

二进制数 2^0+2^8+2^16+2^24=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;

}

赋值

int a[5]={12 ,13 ,24 ,35 ,49}

int a[5]={0}

int a[  ]={4 ,7 ,8 ,10 ,12}

例题  

逆序输出数

#include<iostream>

using namespace std;

int a[110] ;//写外面好,作为全局数组(定义数组,定义在函数以外)

int main( ){

int x,n=0;

while(cin>>x) a[n++]=x;

for(int i=n-1;i>=1;--i)

cout<<a[i];

cout<<a[0];

return 0;

}

2. 求Fibonacci数列

分析:1,1,2,3,5,8,…的第k个数,即F1=1(n=1),F2=1(n=2),Fn=Fn-1 + Fn-2(n>=3) 

#include<iostream>

using namespace std;

int main( ){

for i,k;

int f[60]={1,1};

for(i=2;i<60;i++)

f[i]=f[i-1]+f[i-2];

cin>>k;

cout&l

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值