当前位置: 首页 > news >正文

甘肃网站备案/河南省郑州市金水区

甘肃网站备案,河南省郑州市金水区,网络规划设计师2022年,163企业邮箱免费注册目录实验7-2-9 螺旋方阵 (20分)输入格式:输出格式:输入样例:输出样例:代码思路:1.先尝试构造出外圈数字2.发现规律找出共性,修改代码提高代码的通用性3.测试完整代码测试:实验7-2-9 螺旋方阵 (20分) 所谓“…

目录

  • 实验7-2-9 螺旋方阵 (20分)
      • 输入格式:
      • 输出格式:
      • 输入样例:
      • 输出样例:
      • 代码思路:
        • 1.先尝试构造出外圈数字
        • 2.发现规律找出共性,修改代码提高代码的通用性
        • 3.测试完整代码
      • 测试:

实验7-2-9 螺旋方阵 (20分)

所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。

输入格式:

输入在一行中给出一个正整数N(<10)。

输出格式:

输出N×N的螺旋方阵。每行N个数字,每个数字占3位。

输入样例:

5   

输出样例:

  1  2  3  4  516 17 18 19  615 24 25 20  714 23 22 21  813 12 11 10  9

代码思路:

1.先尝试构造出外圈数字

  • /*顺序: up-right-down-left1  2  3  4  516  0  0  0  615  0  0  0  714  0  0  0  813 12 11 10  9*/
    #include <stdio.h>
    #define N 10
    int main()
    {int i,j,k,n,a[N][N]={0},value=1;scanf("%d",&n);//up for(j=0;j<n;j++){	a[0][j]=value++; }//right	for(i=1;i<n;i++){	a[i][n-1]=value++; }//down	for(j=n-2;j>=0;j--){	a[n-1][j]=value++; }//left	for(i=n-2;i>0;i--){	a[i][0]=value++; }	for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%3d ",a[i][j]);printf("\n");	}return 0;
    }
    

2.发现规律找出共性,修改代码提高代码的通用性

  • 成功输出,可以发现某些规律
    在这里插入图片描述

  • 外圈

    • 输出完外圈后里面是一个3*3的矩阵,里面的矩阵输出步骤重复。故可以使用一个变量k来控制重复的次数k=n , k=k-2; 循环结束条件为k>1
    • 分就奇偶讨论,当k为奇数时,矩阵中间点要单独计算
  • 内圈

    • 每次外圈循环完后,变成更小的矩阵,每条边的上下限不是常量,是一个变量且变化规律是内缩一格

    • //改造代码
      int k,start,end; //分别表示外圈循环标记,起始和末尾
      k=n;
      start=0;
      end=n;
      //
      while(k>1){//up 举列 把所有的与边界值有关替换为start和end控制for(j=start;j<end;j++){	a[start][j]=value++; }//right	for(i=start+1;i<end;i++){	a[i][end-1]=value++; }//down	for(j=end-2;j>=start;j--){	a[end-1][j]=value++; }//left	for(i=end-2;i>start;i--){	a[i][start]=value++; }//如果n为奇数则,为矩阵中间数赋值 if(n%2)a[start][end-1]=value;k=k-2;  //控制外圈变量 5阶矩阵只做2次循环  5 3 1就结束//边界需要缩进一格start=start+1; //0+1 = 1end=end-1;  //(n-1)-1 = n-2
      }
      

3.测试完整代码

#include <stdio.h>
#define N 10
int main()
{int i,j,n,a[N][N]={0},value=1;scanf("%d",&n);//改造代码int k,start,end; //分别表示外圈循环标记,起始和末尾k=n;start=0;end=n;while(k>1){//up 举列 把所有的与边界值有关替换为start和end控制for(j=start;j<end;j++){	a[start][j]=value++; }//right	for(i=start+1;i<end;i++){	a[i][end-1]=value++; }//down	for(j=end-2;j>=start;j--){	a[end-1][j]=value++; }//left	for(i=end-2;i>start;i--){	a[i][start]=value++; }//控制外圈变量  5 3 1 结束k=k-2; //边界需要缩进一格start=start+1; //0+1 = 1end=end-1;  //(n-1)-1 = n-2}//如果n为奇数则,为矩阵中间数赋值 if(n%2)a[start][end-1]=value;for(i=0;i<n;i++)
{   printf("%3d",a[i][0]);for(j=1;j<n;j++)printf("%3d",a[i][j]);printf("\n");}return 0;
}

测试:

  • n==1时,通过
    在这里插入图片描述
  • n==3 为奇数时,通过
    在这里插入图片描述
  • n==5 为测试点时,通过
    在这里插入图片描述
  • n==4 为偶数时,通过
    在这里插入图片描述
  • n==10为最大数时,通过
    在这里插入图片描述
http://www.jmfq.cn/news/5232781.html

相关文章:

  • 网站建设公司的专业度该怎么去看/百度开户怎么开
  • 网站建设免/优帮云排名自动扣费
  • 为什么要建设档案网站/线上线下整合营销方案
  • 建设厅焊工证查询官网/seo课程心得体会
  • 网站制作怎么学/山东seo百度推广
  • 1 建设网站目的是什么意思/在百度怎么创建自己的网站
  • 网站页面构成/关注公众号推广2元一个
  • 乌鲁木齐市做平台网站/太原今日新闻最新头条
  • wordpress 收藏 插件/百度地图排名怎么优化
  • 劫持别人网站做排名/讯展网站优化推广
  • 网站删除模块/全球中文网站排名
  • discuz 做的网站/关键词查询
  • 用户访问域名劫持网站/淄博搜索引擎优化
  • 朝阳周边网站建设/seo权重优化
  • 高端奶茶加盟网站建设/2021最火营销方案
  • 建设网站时以什么为导向/如何推广自己的产品
  • 鹤山做网站公司/四川seo技术培训
  • 秦皇岛市网站制作公司/百度建站官网
  • 爱做网站/网站收录查询网
  • seo网站推广的主要目的是什么/怎么关键词优化网站
  • 网站开发项目经验总结教训/seo关键词
  • 中国网站建设公司/廊坊网站建设优化
  • 物业公司网站模板/产品宣传推广方式有哪些
  • 网站开发是什么职业/长沙seo外包
  • 网站空间是服务器吗/自媒体平台排名
  • 网站外链建设的八大基本准则/打开百度一下搜索
  • html购物网站源代码/googleplay官网
  • 国内永久免费域名申请网站/小江seo
  • 安阳+网站建设/搜索引擎优化教程
  • 动漫视频网站模板/网络营销公司哪家可靠