今天一起分析C语言的算法之16:设计魔方阵。
算法题目: 设计魔方阵:魔方阵就是由自然数组成的方阵,方阵的每个元素都不相同,且每行和每列以及主副对角线上的各个元素之和都不相同。
编程思路分析 编程思路:
1、用for和if-else语句嵌套实现魔方阵;
2、再用for语句将魔方阵输出显示。
程序范例
#include <stdio.h>
int main() { /*因为数组下标是1-5,所以数组长度是6*/ int i,j; int x = 1; int y = 3; int a[6][6] = {0};
for(i = 1 ; i <= 25; i++) { /*将1-25存入数组里面*/ a[x][y] = i;
if(x == 1 && y == 5) { /*当上一行的数是第一行第五列的时候,下一个数放在他的下一行*/ x =x+1; } if(x == 1) { x = 5; } else { x--; } if(y == 5) { y = 1; } else { y++; } /*判断位置上是否有非零数*/ if(a[x][y] != 0) { x += 2; y -= 1; } } /*将魔方阵打印出来*/ for(i = 1 ; i <= 5;i++) { for(j = 1;j <= 5; j ++) { printf("%4d",a[j]); } printf("
"); } }
程序运行结果案例:
|