admin 管理员组文章数量: 1086019
2024年3月21日发(作者:jquery选择器大于号)
C程序设计(第三版)谭浩强 著 课后习题答案第7章
2009-05-16 10:56
7.7 打印“魔方阵”。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之
和均相等。例如,三阶魔方阵为
8 1 6
3 5 7
4 9 2
要求打印出由1 到n2 的自然数构成的魔方阵。
/********************************************************************
**算法思路:魔方阵中各数的排列规律如下:
**(1)将1放在第一行中间一列
**(2)从2开始直到n×n止各数依次按下列规则存放:每一个数存放的行比前一个数
的** 行数减1,列数加1
**(3)如果上一个数的行数为1,则下一个数的行数为n(指最下一行)
**(4)当上一个数的列数为n时,下一个数的列数应为1,行数减1
**(5)如果按上面的规则确定的位置数已有数,或者上一个数是第1行第n列时,则把
** 下一个数放在上一个数的下面
********************************************************************/
#include
void main(){
int a[16][16],i,j,k,p,m,n;
/*初始化*/
p=1;
while(p==1){
printf("input n.(0 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++) a[i][j]=0; /*建立魔方*/ j=n/2+1; a[1][j]=1; for(k=2;k<=n*n;k++) { i=i-1; j=j+1; if((i<1)&&(j>n)){ i=i+2; j=j-1; } else{ if(i<1) i=n; if(j>n) j=1; } if(a[i][j]==0) a[i][j]=k; else{ i=i+2; j=j-1; a[i][j]=k; } } /*输出*/ for(i=1;i<=n;i++){ for(j=1;j<=n;j++) printf("%5d",a[i][j]); printf("n"); } } 7.8 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。 也可能没有鞍点。 #include #define N 10 #define M 10 void main(){ int i,j,k,m,n,flag1,flag2,a[N][M],max,maxi,maxj; printf("ninput row n:"); scanf("%d",&n); printf("ninput column m:"); scanf("%d",&m); for(i=0;i printf("第%d行?n",i); for(j=0;j scanf("%d",&a[i][j]); } for(i=0;i for(j=0;j printf("%5d",a[i][j]); printf("n"); } flag2=0; for(i=0;i max=a[i][0]; for(j=0;j if(a[i][j]>max) { max=a[i][j]; maxj=j; } for(k=0,flag1=1;k if(max>a[k][maxj]) flag1=0; if(flag1){ printf("n第%d行,第%d列的%d是鞍点n",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 a[N]={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((xa[N-1])) succ=-1; while((succ==0)&&(top<=bot)) { middle=(bot+top)/2; if(x==a[middle]) { succ=middle; printf("%d location:%dn",x,succ+1); }
版权声明:本文标题:C程序设计第七章课后练习答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1710988697a582983.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论