设计魔方阵
实例说明:
魔方阵就是由自然数组成方阵,方阵的每个元素都不相等,且每行和每列以及主副对角线上的各元素之和都相等。
实现过程:
1. 打开 VisualC++6.0开发环境,新建一个C源文件,并输入要创建C源文件的名称。
2. 引用头文件,代码如下:
#include <stdio.h>
3. 定义变量及数组的数据类型。
4. 使用for语句按上面所讲规律向数组a中相应位置存放数据。
5. 用嵌套的for语句将二维数组a输出并每输出一行进行换行。
6. 程序主要代码如下:
#include <stdio.h>
int main(int argc, char const *argv[])
{
int i, j, x = 1, y = 3, a[6][6] = {0}; /*因为数组下标的范围是1~5,所以数组长度是6*/
for (i = 1; i <= 25; i++)
{
a[x][y] = i; /*将1-25所有数存到数组相应位置*/
if (x == 1 && y == 5)
{
x = x + 1; /*当上一个数是第1行第5列时,下一个数放在它的下一行*/
continue; /*结束本次循环*/
}
if (x == 1) /*当上一个数是第1行时,则下一个数行数是5*/
x = 5;
else
x--; /*否则行数减1*/
if (y == 5) /*当上一个数列数是第5列时,则下一个数列数是1*/
y = 1;
else
y++; /*否则列数加1*/
if (a[x][y] != 0) /*判断经过上面步骤确定的位置上是否有非零数*/
{
x = x + 2; /*表达式为真则行数加2列数减1*/
y = y - 1;
}
}
for (i = 1; i <= 5; i++) /*将二维数组输出*/
{
for (j = 1; j <= 5; j++)
{
printf("%4d", a[i][j]);
}
printf("\n"); /*每输出一行之后进行换行*/
}
return 0;
}
运行结果:
技术要点:
本实例用到for循环嵌套语句,下面在for结构中嵌套for 结构。
for(表达式1;表达式2;表达式3)
{
语句;for(表达式4;表达式5;表达式6)
{
语句;}
}
脚下留神:
各循环必须完整,不允许相互交叉。
希望能对您的学习和工作有所帮助!