首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编写程序,实现矩阵(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
186
问题
编写程序,实现矩阵(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全国计算机二级
相关试题推荐
下列程序的输出结果是()。#include<stdio.h>#defineF(x)2.84+x#definew(y)printf("%d",(int(y))#defineP(y)w(y)pmchar(’\n’》main(){intx=
阅读下列程序,则程序的输出结果为______。#include"stdio.h"structty{intdata;charc;};main(){structtya={30,’x’};fun(a);printf("%d%c
阅读下面程序,则执行后的输出结果是______。#include"stdio.h"main(){intx,y,z;x=1;y=2;z=3;if(x>y)if(x>z)printf("%d",x);elseprintf("%d",y)
C语言规定,在一个源程序中,main函数的位置
设有如下三个关系表下列操作中正确的是
以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。#includestructlist{intd
以下程序的运行结果是【】。#includemain(){FILE*fp;inta[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb");fwtite(a,sizeof(int),5
函数的值通过return语句返回,下面关于return语句的形式描述错误的是
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
函数的值通过return语句返回,下面关于return语句的形式描述错误的是
随机试题
男性,40岁。有慢性乙型肝炎史10年,感腹胀尿少2周住院,经利尿剂治疗腹水不见消退,考虑腹水超滤回输,适应证为
精子活力d级是指精子呈
A.成型材料B.增塑剂C.遮光剂D.防腐剂E.增稠剂在胶囊材料中,明胶可作
癫病痰气郁结证的代表方剂是
胶囊剂的囊材在制备中常用的附加剂有( )。
下列关于单克隆抗体抗肿瘤药物的描述,错误的是
甲公司于2003年12月10日申请注册A商标。2005年3月20日该商标被核准注册。根据商标法的规定,甲公司申请商标续展注册的最迟日期是()。
“示现”是把已经过去的事情、将要发生的事情或想象中的事情活灵活现地描述出来的修饰技巧。示现一般包括()。
[*]
[*]
最新回复
(
0
)