牛客网基础C++编程-创建动态数组
new申请空间:
指针变量名 = new 存储数据类型
int* p = new int;//在堆区创建整型变量,返回变量地址
int *p = new int(10); //创建的同时赋初值
delete p;
int* p = new int[10];//创建动态数组
int *p = new int[10]{1,2,3,4,5,6,7,8,9,10}; //创建的同时给数组赋初值
delete[] p;
//二维动态数组
int m;//m行
int n;//n列
cin>>m>>n;
int **a=new int *[m];//m行,每行是一个一维动态数组
for(int i=0;i<m;i++){//建立m行一维数组
a[i]=new int[n];//每个一维数组有n个数
}
for(int i=0;i<m;i++){//初始化
for(int j=0;j<n;j++){
a[i][j]=0;
}
}
//二维动态数组的释放
for( int i = 0; i < m; i++ )
delete[] p[i];
delete[] p;
1. 创建动态数组
描述
键盘输入一个正整数 n,创建大小为 n 的数组(采用动态数组的方式),将数组中的元素初始化为 n、n+1、…、2n - 1。并输出数组中的元素。
输入描述:
键盘输入一个正整数 n
输出描述:
输出数组中的元素,元素和元素之间使用空格隔开
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
// write your code here......
int *arr=new int[n]();
for(int i=0;i<n;i++){
arr[i]=n+i;
cout<<arr[i]<<" ";
}
return 0;
}
2. 创建二维动态数组
描述
输入一个正整数 nn,创建大小为 n*n的二维数组a(采用动态数组的方式),将a[i][j]初始化为i+j(0≤i<n,0≤j<n)。并输出数组中的元素。
输入描述:
输入一个正整数 n
输出描述:
输出n行,每行n个用空格隔开的整数表示数组a
示例1
输入:2
输出:
0 1
1 2
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
// write your code here......
int **a=new int *[n];//n行,每行是一个一维动态数组
for(int i=0;i<n;i++){//建立n行一维数组
a[i]=new int[n];//每个一维数组有n个数
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
a[i][j]=i+j;
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}