要注意区分上三角和下三角
#include<stdio.h>
int main()
{
int i,j,k,n,temp;
int a[6][6];
scanf("%d",&n);
//以下默认n=3
//给二维数组赋值
for(i=0;i<n;i++){
for(j=0;j<n;j++){
a[i][j]=i*n+j+1;
}
}
//行列互换
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i<=j){
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
}
//按矩阵形式输出a
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
printf("\n");
//遍历上三角
for(i=0;i<n;i++){
for(j=i;j<n;j++){
printf("%3d",a[i][j]);
}
printf("\n"); //遍历完一行后换行
}
printf("\n"); //隔开其他输出结果
//遍历上三角会出现第二行,第三行数字左对齐的情况,
//所以可以尝试在没遍历的位置输出0
//具体怎么输出,自己搞吧
//遍历下三角
for(i=0;i<n;i++){
for(j=0;j<i+1;j++){
printf("%3d",a[i][j]);
}
printf("\n");
}
printf("\n");
//遍历下三角不会出现上三角左对齐的情况
//单行倒序
for(i=0;i<n;i++){
for(j=n-1;j>=0;j--){
printf("%3d",a[i][j]);
}
printf("\n");
}
printf("\n");
//把外圈数字转了180度
for(i=n-1;i>=0;i--){
for(j=n-1;j>=0;j--){
printf("%3d",a[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}