题目:把给定的n*n长的一维数组按蛇形存入n阶方阵;
如:
![](https://img-blog.csdnimg.cn/img_convert/86e33a84a0f08c7bfc5f5e06d70e716e.jpeg)
代码如下:
#include<stdio.h>
int main(){
int a[100];
int n;
scanf("%d",&n);
for(int j=0;j<n*n;j++){
scanf("%d",&a[j]);
}
int*p=&a[1];
int b[10][10], m=0;
b[0][0]=a[0];
m=1;
int num=0;
for(int k=1;k<2*n-1;k++){//k可以理解为层数,每一层i+j=k;
if(k>=n)num++;//用num变量连接上下两个三角
if(k%2==1){
for(int i=k;i>=2*num;i--){
b[k-i+num][i-num]=*p;
p++;
}}
else if(k%2==0){
for(int i=k;i>=2*num;i--){
b[i-num][k-i+num]=*p;
p++;
}}}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%d ",b[i][j]);
}
printf("\n");
}
}