C++二维数组的认识笔记(笔记+例题)

一、二维数组的认识:

一维数组是一个线性结构

二维数组是一个平面结构

三维数组是立方体

四维:柱子

五维:柱子组成的一面墙 

二、二维数组的定义方法

1、类型 (数组名)[行数][列数];

使用下标进行定义

比如:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[2][3];
    a[0][0]=0;
    a[0][1]=1;
    a[0][2]=5;
    a[1][0]=2;
    a[1][1]=3
    a[1][2]=4;
    return 0;
}

2、定义时就赋初始值

格式:类型 数组名[行数][列数] ={{数据1,数据2……},{数据3,数据4……}……} 

例如:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[2][4]={1,2,3,4},{5,6,7,8}};
    return 0;
}

3、一维数组的赋值方法

格式:类型 数组名[行数][列数]={数据1,数据2,数据3,数据4…………}

比如:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[2][4]={1,2,3,4,5,6,7,8};
    return 0;
}

4、不写行数

类型 数组名[][列数]={数据1,数据2,数据3,数据4,………};

例如:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int a[][4]={1,2,3,4,5,6,7,8};
    return 0;
}

以上是最基本的四种二维数组的定义方式。

三、二维数组的输入输出

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    int a[n][m];
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

四、例题

(郭远摘苹果)郭远有一天走到了一片苹果林,里面每颗树上都结有不同数目的苹果,郭远身上只能拿同一棵树上的苹果,他每到一棵果树前都会把自己身上的苹果扔掉并摘下他所在树上的苹果并带走(假设郭远会走过每一棵苹果树),问在郭远摘苹果的整个过程中,他身上携带的最多苹果数与最小苹果数的差是多少?

输入:

第 1 行读入 n,m(即苹果林中有果树的行数和列,0<n,m≤10);

接下来 n 行,每行读入 m 个整数(即每颗树上的苹果数);

输出:

1 个数字(郭远摘苹果的整个过程中,他身上携带的最多苹果数与最小苹果数的差)

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m,ma=INT_MIN,mi=INT_MAX;
    cin>>n>>m;
    int a[n][m];
    for(int i=0;i<n;i++){
    	for(int j=0;j<m;j++){
        	cin>>a[i][j];
            ma=max(a[i][j],ma);
            mi=min(a[i][j],mi);
        }
    }
    cout<<ma-mi;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值