首页 > 其他分享 >C语言----设计魔方阵

C语言----设计魔方阵

时间:2024-07-28 21:29:34浏览次数:11  
标签:语句 int C语言 ---- 嵌套 数组 方阵 表达式

设计魔方阵

实例说明:

        魔方阵就是由自然数组成方阵,方阵的每个元素都不相等,且每行和每列以及主副对角线上的各元素之和都相等。

实现过程:

        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)

        {
                语句;

        }

}

脚下留神:

        各循环必须完整,不允许相互交叉。 

        希望能对您的学习和工作有所帮助! 

标签:语句,int,C语言,----,嵌套,数组,方阵,表达式
From: https://blog.csdn.net/Mumyi_/article/details/140756378

相关文章

  • Lua 语法 自带库
    时间相关--系统时间print(os.time())--自己传入参数得到时间print(os.time({year=2014,month=8,day=14}))--os.date("*t")localnowTime=os.date("*t")fork,vinpairs(nowTime)do print(k,v)end数学运算--math--绝对值print(math.abs(-11))--弧度转角......
  • C语言----对调最大数与最小数位置
    对调最大数与最小数位置实例说明:        从键盘中输入一组数据,找出这组数据中的最大数与最小数,将最大数与最小数位置互换,并将互换后的数据再次输出。实现过程:打开VisualC++6.0开发环境,新建一个C源文件,并输入要创建C源文件的名称。引用头文件,代码如下:#include<s......
  • Flutter网络错误全解析:当“A network error occurred“遇上“https://maven.google.co
    摘要:在Flutter开发过程中,我们经常需要从远程仓库获取依赖包,而https://maven.google.com/是Flutter依赖的主要来源之一。然而,开发者可能会遇到"Anetworkerroroccurredwhilechecking‘https://maven.google.com/’"的错误提示。本文将从资深Flutter开发专家的角度出发,......
  • 智能呼啦圈目前有哪些种类
    智能呼啦圈作为现代健身器材的一种,具有多种类型,以满足不同人群的需求。以下是一些常见的智能呼啦圈种类:1.可调节大小型特点:这类呼啦圈通常采用智能调节设计,可以根据个人腰围自适应调节大小,适合不同体型的人群使用。品牌示例:如Keep可拆卸呼啦圈,通过特殊设计,能够轻松找到适合......
  • vs2015+Qt环境问题汇总
    1、出现一下莫名奇妙的qt头文件编译报错可能原因是Qt版本太高,建议降低版本,VS2015与Qt5.12.9可以编译通过2、出现无法运行rc.exe错误左边项目资源管理器中右击-->属性-->常规->>目标平台选择8.13、打开.ui界面文件后提示打开错误1、右击ui文件,然后点【添......
  • 什么是智能呼啦圈
    智能呼啦圈是一种结合了现代科技与健身理念的健身器材,它相比传统呼啦圈在设计和功能上有了显著的改进和提升。以下是关于智能呼啦圈的详细介绍:一、定义与特点智能呼啦圈通常具备以下几个核心特点:智能技术融合:智能呼啦圈集成了现代磁疗技术、电子计数技术以及智能感应技术等,......
  • Java如何通过日志排查问题
    问题:大家有没有遇到过这样一种场景,在一个接口或者方法当中,业务逻辑很复杂,方法嵌套调用层级很深,此时要定位业务流程的走向,是不是要在每个方法中打日志,而这些日志是不串联的,比如,一个接口调用下来,程序没有报错,但没有按预期执行,怎么排查,就得翻这个方法调用时的每一条记录日志,而代......
  • 菜鸟通关Upload-labs记录(1-21)
    目录基础环境所需知识:文件上传漏洞漏洞利用方式文件漏洞三要素:通关过程通用思路1.第一关2.第二关3.第三关4.第四关5.第五关6.第六关7.第七关8.第八关9.第九关10.第十关11.第十一关12.第十二关13.第十三关14.第十四关15.第十五关16.第十六关17.第十七关18.第十八关19.第......
  • JavaScript图片轮播
    代码在文章最后面(含图片URL)实现功能按向左按钮图片显示上一张按向右按钮图片显示下一张每隔2000毫秒显示下一张图底部三个圆点显示当前的图片的编号实现流程初始化图片数组创建一个包含图片URL的数组,轮播时会通过这个数组来切换图片。创建当前索引变量 这个变量用来追踪......
  • 静态路由的原理与配置(eNSP实验)
    文章目录一、路由器的工作原理路由概述路由器二、路由表的形成路由表路由表的形成三、静态路由和默认路由静态路由动态路由默认路由四、路由器转发数据包的封装过程五、静态路由和默认路由的配置静态路由的配置默认路由的配置六、配置实例配置实例一配置实例二七、......