首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编写程序,实现矩阵(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
114
问题
编写程序,实现矩阵(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)的运算结果是()。
变量m的值为8,m的地址为1010,若欲使p为指向m的指针变量,则下列赋值正确的是()。
若执行下列程序时从键盘上输入2,则输出结果是()。#inclUde<stdio.h>main(){inta;scanf("%d",&A);if(a++<3)printf("%d\n",A);elseprintf("%d\n",a-
在数据库设计中,将E-R图转换为关系模式的过程属于()。
有如下程序main(){intn=9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是
以下选项中,当x为大于1的奇数时,值为0的表达式是
以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data域不放数据,表空的条件是ph->next==NULL),请填空。#includestructlist{intd
下面程序的运行结果是【】。#include#defineSIZE12main(){chars[SIZE];intI;for(I=0;I
设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
随机试题
Thesimplestwayofputtinganideadownonpaperistodrawapicture.Thatwas【C1】______menfirstbegantowrite,sixthousand
最可能的诊断是下列哪种药物不是治疗该病的适应证
男,40岁,有糖尿病病史7年,此次因颈部出现疼痛、红、肿的区域而来就诊,查体:颈部左侧有一略隆起的紫红色浸润区,质韧,界不清,中央部表面有多个脓栓,体温38.1℃,脉搏78/min,血压120/90mmHg(16/12kPa)。
下列哪项不符合轮状病毒特性
患者,男,40岁,患急性心包炎、心包积液2月余,近几日出现咳嗽、活动后气促,有心绞痛样胸痛。体检:有颈静脉怒张、肝大、腹水、下肢水肿、心率增快,可见Kussmaul征。考虑此时诊断是
患者,男性,50岁。因“急性胰腺炎”入院治疗。病情稳定后,患者依赖性增强,自己能做的事也要别人代劳,该患者使用的心理防卫机制是()
图4是我国某盆地的局部地形剖面示意图。读图回答下列问题。最适合形成天然绿洲的地带是()。
HowdidapeddlerofcheapshirtsandfishingrodsbecomethemightiestcorporationinA-merica?TheshortversionofWal-Mart
请显示或隐藏状态栏。
如果要定义一个窗体级变量,定义变量语句的位置应该是()。
最新回复
(
0
)