当前位置 :
求助C语言高手,关于魔方矩阵的问题把整数1到n2排成一个n×n方阵,使方阵中的每一行,每一列以及对角线上的数之和都相同。①n阶魔方阵的产生;生成后的魔方阵要写入文件。②最大值
1人问答
问题描述:

求助C语言高手,关于魔方矩阵的问题

把整数1到n2排成一个n×n方阵,使方阵中的每一行,每一列以及对角线上的数之和都相同。

①n阶魔方阵的产生;生成后的魔方阵要写入文件。

②最大值的位置;

③指定行的排序,排序方法不限;

④求素数;

⑤求完数;

⑥求水仙花数;

⑦退出。

(2)功能要求

①系统以菜单方式工作;菜单形式不限。

②界面比较美观。

③要有一定的容错能力,比如说按行排序是输入一个不存在的行号,输入的魔方阵阶数为偶数等。

(3)算法分析

如n为奇数,魔方阵可按下述方法构成:

(1)把1填在第一行的正中间,然后填入后续的数;

(2)若数k填在第i行第j列的格子中,那么k+1应填在它的左上方,即第i-1行第j-1列的那个格子中,如果左上方无格子,即:若i-1为0,那么填在第n行第j-1列的格子中;若j-1为0,那么填在第i-1行第n列的格子中;若i-1和j-1都为0,那么填在第n行第n列的格子中。

(3)若按(2)的方法找到的格子中已填过数了,那么数k+1改填在第k个数的正下方。即填在第i+1行和第j列的那个格子中。

陈璇回答:
  #include   #include   #defineN15   voidmain()   {   intiArr[N][N]={0};/*魔法阵数组*/   /*定义变量,i,j为循环控制变,iNum表示数组的行数列数,iPox、iPoy分别代表数组的行数、列数,iPosx、iPosy分别代表保存数组行数变量,保存数组列数变量*/   inti=0,j=0,iNum=0,iPosx=0,iPosy=0,iPox=0,iPoy=0;   printf("inputthenumber:n");/*输入数组的行数列数*/   scanf("%d",&iNum);   if(iNum%2==0||iNum>15||iNum
最新更新
PC端 | 移动端 | mip端
字典翻译(zidianfy.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
电话:  邮箱:
Copyright©2009-2021 字典翻译 zidianfy.com 版权所有 闽ICP备2022014709号-7
lyric 頭條新聞