当前位置:首页 > 中国大学MOOC-哈工大-C语言程序设计精髓第六-十二周编程题答案
Input n(n<1000): 532↙ X=3,Y=2,Z=1
程序运行结果示例2: Input n(n<1000): 977↙ Invalid
输入提示:\Input n(n<1000):\\n\ 输入格式: \
输出格式:\ 计算不成功(无解)的输出提示:\
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
#include
printf(\); int a,b,c,n,s,x,y,z,flag=0; scanf(\, &n); for (x=1;x<=9;x++){ for (y=1;y<=9;y++){ for (z=0;z<=9;z++){
if (x*100+y*10+z+y*100+z*11 == n){ flag=1;
a=x,b=y,c=z; break; } } } }
if (flag)
printf(\,a,b,c); else printf(\); }
8.1矩阵转置v1.0(4分)
题目内容:
用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。其中,n的值不超过10,n的值由用户从键盘输入。
程序运行结果示例1: Input n:3↙ Input 3*3 matrix: 1 2 3↙ 4 5 6↙ 7 8 9↙
The transposed matrix is: 1 4 7 2 5 8 3 6 9
程序运行结果示例2: Input n:2↙ Input 2*2 matrix: 1 2↙ 4 5↙
The transposed matrix is: 1 4 2 5
#include
printf(\); int n;
scanf(\,&n);
printf(\,n,n); int m[n][n],i,j; for (i=0;i scanf(\,&m[i][j]); } } printf(\); for (i=0;i printf(\,m[j][i]); } printf(\); } return 0; } 8.2 兔子生崽问题(4分) 题目内容: 假设一对小兔的成熟期是一个月,即一个月可长成成兔,那么如果每对成兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖,n(n<=12)月以后可有多少对兔子(即当年第n月份总计有多少对兔子,含成兔和小兔)?请编程求解该问题,n的值要求从键盘输入。 参考答案:依题意,兔子的繁殖情况如图所示。图中实线表示成兔仍是成兔或者小兔长成成兔;虚线表示成兔生小兔。观察分析此图可发现如下规律: (1)每月小兔对数 = 上个月成兔对数。 (2)每月成兔对数 = 上个月成兔对数 + 上个月小兔对数。 综合(1)和(2)有:每月成兔对数 = 前两个月成兔对数之和。 用fn(n=1,2,…)表示第n个月成兔对数,于是可将上述规律表示为如下递推公式: #include printf(\); int n,total=0,i,s=0,b=1,t; scanf(\,&n); printf(\,1); for (i=2;i<=n;i++){ t=s; s=b; b=b+t; printf(\,s+b); } printf(\,s+b); return 0; } 8.3 抓交通肇事犯(4分) 题目内容: 一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。 [提示]:假设这个4位数的前两位数字都是i,后两位数字都是j,则这个可能的4位数 k = 1000*i + 100*i + 10*j + j 式中,i和j都在0~9变化。此外,还应使k=m*m,m是整数。由于k是一个4位数,所以m值不可能小于31。 输入格式: 无 输出格式:\k=%d,m=%d\\n\ 注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! #include int i,j,k,m,tk,tm; for (i=0;i<=9;i++){ for (j=0;j<=9;j++){ for (m=31;m<100;m++){ k = 1000*i + 100*i + 10*j + j; if (i!=j && m*m==k){ tm=m; tk=k; break; } } } } printf(\,tk,tm); return 0; } 8.4 检验并打印幻方矩阵。(4分) 题目内容:
共分享92篇相关文档