#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int a[n][n];
memset(a,0,sizeof(a));//初始化赋值方法
for(int i = 0; i < n; i++){
for(int j = 0; j <= i; j++){
if(j == 0 || j == i){
a[i][j] = 1;
}
if(i >= 2){
a[i][j] = a[i-1][j-1]+a[i-1][j];
}
}
}
for(int i = 0;i < n; i++){
for(int j = 0; j <= i; j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
注意: 二维数组输出想要输出的部分,如下:
//都已全部赋值为0
int a[n][n];
memset(a,0,sizeof(a));//初始化赋值方法
如1:输出二维数组的所有区间的数
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
如2:输出二维数组赋值区间的数
0
0 0
0 0 0
0 0 0 0
关键是j <= i
控制了显示出来的范围,所以才隐藏了其他区间的数。
for(int i = 0; i < n; i++){
for(int j = 0; j <= i; j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
补充初始化数组(赋值)的方法,适应一维二维:
memset(a,0,sizeof(a));