问题描述 :
输出一个如下的n阶方阵。例如,若读入11,则输出:
输入说明 :
输入一个正整数n(n<20),表示需要输出n阶方阵。
输出说明 :
共输出n行n列,每个整数占4位,不足4位则左边补空格。
每行的最后无空格。
无多余空行。
不足左边补空格%4d,另每两个数据元素之间没有空格
#include<stdio.h>
#include<stdlib.h>
int main(){
int n,k,i,j,temp;
int **a;
scanf("%d",&n);
a=(int **)malloc(sizeof(int*)*n);
for(i=0;i<n;i++){
a[i]=(int*)malloc(sizeof(int)*n);
}
k=1;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
a[i][j]=k;
k++;
}
if(1==i%2){
for(j=0;j<n/2;j++){
temp=a[i][j];
a[i][j]=a[i][n-1-j];
a[i][n-1-j]=temp;
}
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%4d",a[i][j]);
}
printf("\n");
}
return 0;
}