0
点赞
收藏
分享

微信扫一扫

初见数组——c++

凉夜lrs 2022-03-17 阅读 24

数组

1.数组是什么

数组是一个变量,由数据类型相同的一组元素组成

变量是内存中的一块空间。
数组是内存中一串连续的空间。

2.数组的结构和基本要素

  • 标识符:数组的名称,用于区分不同的数组
  • 数组元素∶向数组中存放的数据
  • 元素下标:对数组元素进行编号,从0开始
  • 元素类型:数组元素的数据类型

数组长度固定不变,避免数组越界

3.一维数组的使用

定义数组的格式

数据类型 数组名[数组长度]

注意:这里和 c 不同的是,c++ 的 数组长度 可以是变量

   int n=100;
   int num[n];

这样定义是允许的。

一维数组初始化

3种初始化方式:

//定义长度,全部赋初值
int years[6] = {2012,2013,2014,2015,2016,2017};
//定义长度,部分赋初值
int months[12]= {1.3.5.7.8,10.12};
//不定义长度,根据初值个数确定定义长度
int days[] = {1,15};

注意:

int array[]={}

是不可以的,因为系统无法确定其大小。

c++中新增的功能:

  • =可以省略 :int days{1,15};
  • 可以使用{}赋初值,代表全部赋为0:float m[10]{};

动态赋值

#include <iostream>
using namespace std;

int main()
{
  const int N=5;
  int num[N];
  for(int i=0;i<5;i++)
  {
      cout<<"请输入第"<<i+1<<"个元素"<<endl;
      cin>>num[i];
  }
  for(int i=0;i<N;i++){
    cout<<num[i]<<" ";
  }
  return 0;
}

获取数组长度

sizeof(数组名)/sizeof(数组类型)

eg:

#include <iostream>
using namespace std;

int main()
{
  const int N=5;
  int num[N];
  cout<<sizeof(num)/sizeof(int)<<endl;
  return 0;
}

输出:

5

例题

(1)获取数组平均值:

#include <iostream>
using namespace std;

int main()
{
  int num[]{1,34,56,21,45,67,90};
  int sum=0;
  for(int i=0;i<sizeof(num)/sizeof(int);i++)
  {
      sum+=num[i];
  }
  cout<<sum/(sizeof(num)/sizeof(int))<<endl;

  return 0;
}

输出:

44

(2)求数组中的最大值

#include <iostream>
using namespace std;

int main()
{
  int num[]{1,34,56,21,45,67,90};
  int min_num,max_num;
  int n=sizeof(num)/sizeof(int);

   min_num=num[0];
   max_num=num[0];
  for(int i=0;i<n;i++)
  {
     if(num[i]<min_num)
        min_num=num[i];
     if(num[i]>max_num)
        max_num=num[i];
  }
  cout<<"最大值是:"<<max_num<<endl;
  cout<<"最小值是:"<<min_num<<endl;

  return 0;
}

(3)求数组中奇数和偶数个数

#include <iostream>
using namespace std;

int main()
{
  int num[]{1,34,56,21,45,67,90};
  int j_num=0,o_num=0;
  int n=sizeof(num)/sizeof(int);

  for(int i=0;i<n;i++)
  {
     if(num[i]%2==0)
      o_num++;
      else j_num++;
  }
  cout<<"奇数个数是:"<<j_num<<endl;
  cout<<"偶数个数是:"<<o_num<<endl;

  return 0;
}

(4)查找下标

#include <iostream>
using namespace std;

int main()
{
    int num[] {1,34,56,21,45,67,90};
    int s_num,s_index=-1;
    int n=sizeof(num)/sizeof(int);

    cout<<"请输入你要查找的数字: "<<endl;
    cin>>s_num;


    for(int i=0; i<n; i++)
    {
        if(num[i]==s_num)
        {
            s_index=i;
            break;
        }
    }

    if(s_index==-1)
    {
        cout<<"没有找到该数字!"<<endl;
    }else{
    cout<<"找到该数字,下标是:"<<s_index<<endl;}

    return 0;
}

举报

相关推荐

0 条评论