c++数组

数组放在连续的内存空间中

元素为同一数据类型

    int arr[5];
    arr[0] = 10;
    arr[1] = 0;
    arr[2] = 20;
    arr[3] = 30;
    arr[4] = 40;
    cout << arr[4] << endl;
    //第二种命名方式
    int arr2[5] = { 1,2,3,4,5 };
    cout << arr2[3] << endl;
    //第三种命名方式
    for (int a = 0; a < 5; a++)
    {
        cout << arr2[a] << endl;
    }//定义数组时必须有初始长度 

一维数组名的用途

1.可以统计整个数组在内存中的长度 sizeof(arr)

2.可以获取数组在内存中的首地址

    int arr[5] = { 1,2,3,4,5 };
    cout << arr << endl;//查看首地址
    cout << &arr[2] << endl;//元素地址
    cout <<(int)arr<< endl;//强制转换首地址
    //注:数组名是一个常量
    //arr=100;不可以被赋值
    cout << "数组所占内存空间长度为: " << sizeof(arr) << endl;
    cout << "每个元素所占空间为:\t" << sizeof(arr[0]) << endl;
    cout << "数组中元素个数为:\t" << sizeof(arr) / sizeof(arr[0]) << endl;

冒泡排序

    int arr[5] = { 300,200,400,100,230 };
    int max = 0;
    for (int i = 0; i < 5; i++)
    {
        if (arr[i] >max)
        {
            max = arr[i];
        }
        
    }
    cout <<"最大数为:"<<max << endl;

数组元素逆置

    int arr[5] = { 1,3,2,5,4 };
    int start = 0;//起始元素下标
    int end = sizeof(arr) / sizeof(arr[0]) - 1;
    cout << "输出逆置前"<< endl;
    for (int i = 0; i < 5; i++)
    {
        cout << arr[i]<<endl ;
    }
    cout << "输出逆置后" << endl;
    while (start < end)
    {
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        
        start++;
        end--;
    }
    for (int i = 0; i < 5; i++)
    {
        cout << arr[i] << endl;
    }

冒泡排序

后面的比前面的小则交换,一直执行到所有后面的都比前面的大

本质就是一遍一遍重复然后使得从左往右于此增大

int arr[9] = { 4,2,8,7,6,3,1,5,9 };
    for (int i = 0; i < 9-1; i++)
    {
        for (int j = 0; j < 9-i-1; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    for (int i=0; i < 9; i++)
    {
        cout << arr[i] ;
    }

二维数组

数据类型arr[][]

外层打印行数内层打印列数

int arr[2][2];
    arr[0][0] = 1;
    arr[0][1] = 2;
    arr[1][0] = 3;
    arr[1][1] = 4;
    arr[2][0] = 5;
    arr[2][1] = 6;
    arr[2][2] = 7;
for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << arr[i][j] << " ";

        }
        cout << endl;
    }

二维数组第二种定义方式

int aaa[2][3] =
    {
        {1,2,3},
        {4,5,6}
    };//第二种定义方式
for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j <3; j++)
        {
            cout << aaa[i][j] << " ";
        }
        cout << endl;
    }

二维数组成绩统计

让每行三列总和,然后输出

int arr[3][3] =
    {
        {100,100,100},
    {90,50,100},
    {60,70,80},
    };
    string names[3] = { "张三","李四","王五"};
    for (int i = 0; i < 3; i++)
    {
        int sum = 0;
        for (int j = 0; j < 3; j++)
        {
            sum += arr[i][j];
            cout << arr[i][j]<<" ";
        }
        cout <<" "<<names[i]<<"的总分为"<<sum << endl;
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值