1.
#include<bits/stdc++.h>
using namespace std;
int n, num = 1, arr[100][100];
int main(){
cin >> n;
for(int i = 0; i < n; i ++){
if(i % 2 == 0){
for(int j = 0; j < n; j ++){
arr[j][i] = num;
num ++;
}
}
else{
for(int j = n - 1; j >= 0; j --){
arr[j][i] = num;
num ++;
}
}
}
for(int i = 0; i < n; i ++){
for(int j = 0; j < n; j ++){
printf("%-3d", arr[i][j]);
}
printf("\n");
}
return 0;
}
2.
#include<bits/stdc++.h>
using namespace std;
int n, num = 1, arr[100][100];
int main(){
cin >> n;
for(int i = 1; i <= n / 2; i ++){
for(int x = i; x <= n - i; x ++){
arr[x][n - i + 1] = num;
num ++;
}
for(int y = n - i + 1; y >= i + 1; y --){
arr[n - i + 1][y] = num;
num ++;
}
for(int x = n - i + 1; x >= i + 1; x --){
arr[x][i] = num;
num ++;
}
for(int y = i; y <= n - i; y ++){
arr[i][y] = num;
num ++;
}
}
if(n % 2 != 0)
arr[n / 2 + 1][n / 2 + 1] = num;
for(int i = 1; i <= n; i ++){
for(int j = 1; j <= n; j ++)
printf("%-3d", arr[i][j]);
printf("\n");
}
return 0;
}
3.
当i为0、2、4即偶数的时候,数字都是从左下向右上填充的;当i为1、3、5即奇数的时候,数字都是从右上向左下填充的。
#include<bits/stdc++.h>
using namespace std;
int n, num = 1, arr[100][100];
int main(){
cin >> n;
for(int i = 0; i < n; i ++){
if(i % 2 == 0){
int x = i;
int y = 0;
while(x >= 0){
arr[x][y] = num;
num ++;
x --;
y ++;
}
}
else{
int x = 0;
int y = i;
while(y >= 0){
arr[x][y] = num;
num ++;
x ++;
y --;
}
}
}
for(int i = 0; i < n; i ++){
for(int j = 0; j < n; j ++){
printf("%-3d", arr[i][j]);
}
printf("\n");
}
return 0;
}