二维数组:
1.打印数字三角形: 输入: 5 输出: 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 #include
using namespace std; int main(){ int i,j,n,k=0; int a[100][100]={0}; cin>>n; for(j=1;j<=n;j++){ for(i=j;i<=n;i++){ k++; a[i][j]=k; } } for(i=1;i<=n;i++){ for(j=1;j<=i;j++)cout<
using namespace std; int main(){ int i,j,t,p,k,n; int a[100][100]={0}; cin>>n; k=n/2+n%2;//求出环形阵的最大数字。 for(t=1;t<=k;t++){//循环每一层环形的行或列出现的数字 for(i=t;i<=n+1-t;i++){//循环每一层环形的各行或列的数字的出现个数 a[t][i]=t;//上行 a[n+1-t][i]=t;//下行 a[i][t]=t;//左列 a[i][n+1-t]=t;//右列 } } for(i=1;i<=n;i++){ for(j=1;j<=n;j++)cout<
#include
using namespace std; int a[100][100]={0}; int n; int check( int x,int y){ if(x>n||x<1||y>n||y<1)return false; if(a[x][y]>0)return false; return true; } int main(){ int i,j,k,x,y,t; int way[3][2]={{1,0},{0,1},{-1,-1}}; cin>>n; x=1;y=1;k=1;t=0;a[x][y]=1; while(k<(1+n)*n/2){ while(check(x+way[t][0],y+way[t][1])){ x=x+way[t][0]; y=y+way[t][1]; k++; a[x][y]=k; } t++; if(t>2)t=0; } for(i=1;i<=n;i++){ for(j=1;j<=i;j++)cout<
#include
using namespace std; int a[100][100]={0}; int n; int check( int x,int y){ if(x>n||x<1||y>n||y<1)return false; if(a[x][y]>0)return false; return true; } int main(){ int i,j,k,x,y,t; int way[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; cin>>n; x=1;y=1;k=1;t=0;a[x][y]=1; while(k
3)t=0; } for(i=1;i<=n;i++){ for(j=1;j<=n;j++)cout<
#include
using namespace std; int a[100][100]={0}; int n,p=0; int check( int x,int y,int z){ if(x>n||x<1||y>n||y<1)return false; if(a[x][y]>0)return false; if (z==0||z==2){ if(p==0)p=1;else {p=0;return false;} } return true; } int main(){ int i,j,k,x,y,t; int way[4][2]={{0,1},{1,-1},{1,0},{-1,1}}; cin>>n; x=1;y=1;k=1;t=0;a[x][y]=1; while(k
3)t=0; } for(i=1;i<=n;i++){ for(j=1;j<=n;j++)cout<