首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编写程序,实现矩阵(3行、3列)的转置(即行列互换)。 例如,若输入下面的矩阵: 100 200 300 400 500 600 700 800 900 则程序输出: 100 400 700 200 500 800 300 600
编写程序,实现矩阵(3行、3列)的转置(即行列互换)。 例如,若输入下面的矩阵: 100 200 300 400 500 600 700 800 900 则程序输出: 100 400 700 200 500 800 300 600
admin
2017-02-24
176
问题
编写程序,实现矩阵(3行、3列)的转置(即行列互换)。
例如,若输入下面的矩阵:
100 200 300
400 500 600
700 800 900
则程序输出:
100 400 700
200 500 800
300 600 900
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
1 #include<stdio.h>
2 #include<conio.h>
3 #include<stdlib.h>
4 void fun(int array[3][3])
5 {
6
7 }
8 void main()
9 {
10 FILE,lc Wf;
11 int i,j;
12 int array[3][3]={{100,200,300),{400,500,600),{700,800,900});
13 system("CLS");
14 for(i=0;i<3;i++)
15 { for(j=0;j<3;J++)
16 printf("%7d",array
[j]);
17 printf("\n");
18 }
19 fun(array);
20 printf("Converted array:\n");
21 for(i=0;i<3;i++)
22 { for(j=0;j<3;j++)
23 printf("%7d",array
[j]);
24 printf("\n");
25 }
26 /*********found*********/
27 wf=fopen(”out.dat”,”w”);
28 for(i=0;i<3;i++)
29 { for(j=0;j<3;j++)
30 fprintf(wf,"%7d",array
[j]);
31 fprintf(wf,"\n");
32 }
33 fclose(wf);
34 /*********found*********/
35 }
选项
答案
Void fun(int array[3][3]) { int i,j,t; for(i=0;i<3;i++)/*将右上三角和左下三角对换,实现行列互换*/ for(j=i+1;j<3;j++) {t=array[i][j]; array[[i][j]=array[j][i]; array[i][j]=array[i][j]; array[j][i]=t; } }
解析
要实现矩阵转置,即将右上角数组元素和左下角数组元素对换,本题通过数组元素交换方法,完成矩阵转置操作。
因为对矩阵转置后仍然存回其本身,所以只能循环矩阵中的一个角(本程序是右上半三角)。控制右上半三角的方法是在内层循环中循环变量j从i+1或i开始。
转载请注明原文地址:https://kaotiyun.com/show/0MDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是()。
下列二维数组初始化语句中,不正确的是()。
下列程序的输出结果是()。#include<stdio.h>voidp(int*x){printf("%d",++*x);}voidmain(){inty=3;p(&y);}
下列字符数组初始化语句中,不正确的是()。
在C语言中,变量的隐含存储类别是
在C语言中,函数返回值的类型最终取决于
若有说明:int*p,m=5,n;,以下正确的程序段是
以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。main(){intx[10],a[9],I;for(I=0;I
下列关于字符串的说法中错误的是
随机试题
下列哪种情况不是狭窄性腱鞘炎的体征
A.阻断外周H1受体B.阻断外周H2受体C.阻断中枢H1受体D.中枢抗胆碱E.奎尼丁样作用抗组胺药中枢抑制作用机制是
张某以诽谤为由向人民法院对李某提起自诉,并同时提起了附带民事诉讼,由于种种原因,人民法院推迟了对附带民事诉讼的审理,而先行对本案的刑事部分作出了审判。对本案民事部分的判决的上诉期限是:
甲为了杀害乙,购买一把匕首,在家反复打磨,使匕首锋利无比。后觉得刀杀把握不大,决定改为毒杀,又购买了若干种剧毒农药。后来觉得不够稳妥,改用爆炸方法,为此从外地私下购买了10公斤烈性炸药、数十支雷管,乘长途客车带回家中。最后决定选用枪杀方法,为此偷来1支手枪
承包人在提交索赔报告时,( )证明材料可作为合理的证据。
热力管道保温材料进场,应按标准规定于现场按批抽样,检测材料的()是否符合标准规定。
当市场价格不利变动导致亏损使会员保证金不能达到规定水平时,结算机构会向会员发出追加保证金的通知。会员收到通知后必须在下一交易日规定时间内将保证金交齐,否则结算机构有权对其持仓进行()。
下列关于船舶吨税的说法,错误的是()。
对民主社会主义认识正确的是()。①最初的民主社会主义是资本主义社会主义②民主社会主义是马克思社会主义的分支③民主社会主义否认了社会制度的客观性④民主社会主义肯定了工人阶级的领导地位⑤民主社会主义把社
求不定积分∫χ3dχ.
最新回复
(
0
)