第07章--数组.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第07章--数组

7.4 数组综合应用举例 【例1】 求解幻方问题。 幻方是一种古老的数字游戏,n阶幻方就是把整数1~n2排成n×n的方阵,使得每行中的各元素之和,每列中各元素之和,以及两条对角线上的元素之和都是同一个数。奇数阶幻方的构造方法如下: 2 9 4 7 5 3 6 1 8 ①把1放在最上面行的正中间方格中; ②下一个整数放置到右上方。并且   如果到达最上一行,下一个整数放在最后一行;   如果到达最右端,则下一个整数放在最左端;   当到达的方格中填上数值时,下一个整数就放在刚填写上数码的方格的正下方。 语言程序设计教程 第二版 第七章 数 组 C #include stdio.h #define MAX 15 void main ( ) { int m, mm, i, j, k, ni, nj; int magic[MAX][MAX] = {0}; scanf(%d,m); mm=m*m; /*方格总数*/ i = 0; /*第一个值的位置*/ j = m / 2; for (k = 1; k = mm; k++) { magic[i][j] = k; /*求右上方方格的坐标*/ ni = i - 1; nj = j + 1; if (i == 0) /*最上一行*/ ni = m - 1; /*下一个位置在最下一行*/ if (j == m - 1) /*最右端*/ nj = 0; /*下一个位置在最左端*/ /*判断右上方方格是否已有数*/ if (magic[ni][nj] == 0) /*右上方无值*/ { i = ni; j = nj; } else /*右上方已有非零值*/ i++; /* 上个数的正下方,行加1,列不变*/ } for (i = 0; i m; i++) /*显示结果 */ { for (j = 0; j m; j++) printf (%4d, magic[i][j]); printf (\n); } } 语言程序设计教程 第二版 第七章 数 组 C 7.4 数组综合应用举例 【例2】输入一个3*4矩阵,求矩阵转置 设计分析: 表述一个3*4矩阵可用一个二维数组a[3][4]; 求转置需对应行和对应列交换(第一行与第一列交换,第二行与第二列交换,…) 。    语言程序设计教程 第二版 第七章 数 组 C #include stdio.h void main ( ) { float a[3][4]={0},b[4][3]; int i,j; for(i=0;i3;i++) for(j=0;j4;j++) scanf(%f,a[i][j]); for(i=0;i3;i++) for(j=0;j4;j++) b[j][i]=a[i][j]; for(i=0;i4;i++){ for(j=0;j3;j++) printf(%6.0f,b[i][j]); printf(\n); } } 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1    7.4 数组综合应用举例 【例3】打印如下图所示的杨辉三角形 语言程序设计教程 第二版 第七章 数 组 C 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1    设计分析: 上图左对齐后成右图所示。因有6行6列,因此,用a[6][6]来表示。   由右图可看出a[i][0]=1, (i=

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档