C语言程序设计编程精选44例(9)

2020-03-27 14:20

}

}

if(x==2) { if(m!=e||n!=f) { printf(\ printf(\ } else { j=0; while(j

问题27: Matrix Problem (III) : Array Pratice 题目描述

求两个矩阵A、B的乘积C=AB。根据矩阵乘法的定义,只有A的列数和B的行数相同才

能相乘。可以确保所有运算结果都在int类型的范围之内。

输入

输入数据为多个矩阵(最少2个),每个矩阵以两个正整数m和n开始,满足0

输出

对输入的矩阵两两相乘:第1个和第2个相乘、第1个和第2个相乘的结果和第3个相乘……按顺序输出矩阵相乘的结果:每行两个元素之间用一个空格分开,每行最后一个元素之后为一个换行,在下一行开始输出矩阵的下一行。

若前k个矩阵相乘的结果和第k+1个矩阵无法相乘(即不满足矩阵乘法定义),则输出“Not

satisfied the definition of matrix multiplication!”。然后用第k+1个矩阵去和第k+2个矩阵相乘。最后一个矩阵只做乘数。

每两组输出之间用一个空行分隔开。

样例输入

2 3 1 1 1 1 1 1 3 3 1 2 3 4 5 6 7 8 9 3 1 0 0 0 0 0

样例输出

12 15 18 12 15 18 0 0

提示

矩阵的乘法就是一行乘以一列加起来做一个元素。

解答:

#include int main() {

int m,n,i,j,p,k,c,d,o,q;

int a[100][100]={0},b[100][100]={0},e[100][100]={0}; for(k=1;;k++) {

if(k==1&&k%2==1) {

scanf(\ scanf(\

}

else if(k%2==0) {

scanf(\ scanf(\ }

if(m==0&&n==0) return 0; else {

if(k==1) { i=0;

while(i

while(j

scanf(\ j++; } i++; } }

else if((k>1)&&(k%2!=0)) {

for(i=0;i

for(j=0;j

for(p=0;p

scanf(\ if(j==p) {

for(c=0;c

while(d

e[c][d]=0;

for(o=0; o

e[c][d]+=a[c][o]*b[o][d]; d++; } }

for(c=0; c

for(d=0; d

if(d==0)

printf(\ else

printf(\ }

printf(\ } } else {

printf(\ for(c=0; c

for(d=0; d

if(k%2==0)

printf(\ } }

问题28: 十进制整数转二进制

题目描述

给出一个十进制的非负整数x,x<=216,把它转换成二进制数输出。

输入

输入为多行,每行一个整数x,至读入EOF结束。

输出

每行输出x对应的二进制数值。

样例输入

0 1 3 33 65535

样例输出

0 1 11

100001

1111111111111111

提示

本题有多种解法:可以用循环迭代对2的除法和取余操作,不过处理的顺序与输出顺序相反,需要利用数组存储;用取对数或从大到小减去2的整数次幂的方法计算与输出顺序是相同的;也可以用printf()把十进制的数值处理成十六进制,然后1位十六进制转4位二进制;也可以用位运算处理。

解答:

#include int main() { int x,i,j,y; for(;scanf(\ { if(x==0) printf(\ else { i=0; int a[100]={0}; for(;x!=0;) { y=x%2; x=x/2; a[i]=y; i++; } for(j=i-1;j>=0;j--) printf(\ printf(\ } } }

问题29: 魔方阵

题目描述

所谓N阶魔方阵,是一个N*N的方阵,其元素由1到N^2组成,且方阵每行每列以及对角线的元素和相等。如三阶魔方阵: 8 1 6 3 5 7 4 9 2

魔方阵的规律如下:


C语言程序设计编程精选44例(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:吉利自由舰常见故障案例汇编

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: