2022年C程序设计第七章课后练习答案 .pdf

上传人:Che****ry 文档编号:24180844 上传时间:2022-07-03 格式:PDF 页数:5 大小:29.06KB
返回 下载 相关 举报
2022年C程序设计第七章课后练习答案 .pdf_第1页
第1页 / 共5页
2022年C程序设计第七章课后练习答案 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年C程序设计第七章课后练习答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C程序设计第七章课后练习答案 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C程序设计(第三版)谭浩强著 课后习题答案第 7 章2009-05-16 10:56 7.7 打印“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为8 1 6 3 5 7 4 9 2 要求打印出由1 到 n2 的自然数构成的魔方阵。/* * 算法思路:魔方阵中各数的排列规律如下:*(1) 将 1 放在第一行中间一列*(2) 从 2 开始直到 nn 止各数依次按下列规则存放:每一个数存放的行比前一个数的* 行数减 1,列数加 1 *(3) 如果上一个数的行数为1,则下一个数的行数为n(指最下一行 ) *(4) 当上一个数的列数为n 时,下一个数的列数应

2、为1,行数减 1 *(5) 如果按上面的规则确定的位置数已有数,或者上一个数是第1 行第 n 列时,则把* 下一个数放在上一个数的下面*/ #include void main() int a1616,i,j,k,p,m,n; /* 初始化 */ p=1; while(p=1) printf(input n.(0n=15,n是奇数 .)n); scanf(%d,&n); if(n != 0) & (n=15) & (n%2 != 0) printf(矩阵阶数是 %dn,n); p=0; for(i=1;i=n;i+) for(j=1;j=n;j+) aij=0; /* 建立魔方 */ j=n/

3、2+1; a1j=1; for(k=2;k=n*n;k+) i=i-1; j=j+1; if(in) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 5 页 - - - - - - - - - i=i+2; j=j-1; else if(in) j=1; if(aij=0) aij=k; else i=i+2; j=j-1; aij=k; /* 输出*/ for(i=1;i=n;i+) for(j=1;j=n;j+) printf(%5d,aij); p

4、rintf(n); 7.8 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。#include #define N 10 #define M 10 void main() int i,j,k,m,n,flag1,flag2,aNM,max,maxi,maxj; printf(ninput row n:); scanf(%d,&n); printf(ninput column m:); scanf(%d,&m); for(i=0;in;i+) printf(第%d行?n,i); for(j=0;jm;j+) scanf(%d,&aij); for(i=0;in

5、;i+) for(j=0;jm;j+) printf(%5d,aij); printf(n); flag2=0; for(i=0;in;i+) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 5 页 - - - - - - - - - max=ai0; for(j=0;jmax) max=aij; maxj=j; for(k=0,flag1=1;kakmaxj) flag1=0; if(flag1) printf(n第%d行, 第%d列的%d是鞍点 n,

6、i,maxj,max); flag2=1; if(!flag2) printf(n矩阵中无鞍点 !n); 7.9 有 15 个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中, 则打印出“无此数”。#include #define N 15 void main() int x,top,bot,middle,succ; int aN=1,3,5,7,9,11,12,35,46,57,68,79,80,91,102; printf(Enter x:); scanf(%d,&x); succ=0; top=0;bot=N-1; if(x

7、aN-1) succ=-1; while(succ=0)&(top=bot) middle=(bot+top)/2; if(x=amiddle) succ=middle; printf(%d location:%dn,x,succ+1); else if(xamiddle) bot=middle-1; else top=middle+1; if(succ=0|succ=-1) printf(%d not in array.n,x); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - -

8、- - - 第 3 页,共 5 页 - - - - - - - - - 7.10 有一篇文章,共有3 行文字,每行有80 个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。#include void main() int i,j,upper,lower,digit,space,other; char article380; i=j=upper=lower=digit=space=other=0; for(i=0;i3;i+) printf(Input %d row:n,i); gets(articlei); for(j=0;j=A&articleij=a&arti

9、cleij=0&articleij=9) digit+; else if(articleij= ) space+; else other+; for(i=0;i3;i+) puts(articlei); printf(upper=%dn,upper); printf(lower=%dn,lower); printf(digit=%dn,digit); printf(space=%dn,space); printf(other=%dn,other); 7.11 打印以下图案:* * * * * * * * * * * * * * * * * * * * *#include (可不写)void m

10、ain() char a6=*; char space= ; int i,j,k; for(i=0;i5;i+) for(j=0;ji;j+) printf(%c,space); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 5 页 - - - - - - - - - for(k=0;k5;k+) printf(%c,ak); printf(n); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁