首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编写程序,实现矩阵(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
90
问题
编写程序,实现矩阵(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全国计算机二级
相关试题推荐
若有定义inta=5,b=7;,则表达式a%=(b%2)运算后,a的值为()。
有以下程序段,且变量已正确定义和赋值for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));printf("s=%f\n\n",s);请填空,使下面程序段的功能与之完全相同S=1.0;k=1;while([8]
以下合法的字符型常量是
下面程序输出的结果是main(){inti;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",a[2-i][i]);}
有以下程序#include<stdio.h>main(){intc;while((c=getchar())!=’\n’){switch(c-’2’){case0:case1:pu
下面程序的功能是:计算110之间的奇数之和与偶数之和,请填空。#includemain(){inta,b,c,I;a=c=0;for(I=0;I
以下程序的运行结果是【】。#includemain(){FILE*fp;inta[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb");fwtite(a,sizeof(int),5
阅读以下程序及对程序功能的描述,其中正确的是#includemain(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n"
下列函数的运行结果是main(){inti=2,p;intj,k;j=i;k=++i;p=f(j,k);printf("%d",p);}intf(inta,intb){intc;if(a>b
若有以下函数首部intfun(doublex[10],int*n)则下面针对此函数的函数声明语句中正确的是
随机试题
0
Lastweekhepromisedthathe______today,buthehasn’tarrivedyet.
A.阿普唑仑B.环丙沙星C.妥布霉素D.利巴韦林E.阿奇霉素属喹诺酮类的药物是
FIDIC合同条件下,当( )生效之后,承包商根据合同进行索赔的权力就终止了。
A、 B、 C、 D、 A每个黑色的小图形等于两个白色的小图形,经过换算后,第一行每个图形都有7个白色三角形,第二行每个图形都有9个白色正方形,第三行每个图形都有8个白色圆圈,选项中只有A符合。
把下面的六个图形分为两类,使每一类图形都有各自的共同特征或规律,分类正确的一项是:
马克思指出:“商品价格对商品价值的不断背离是一个必要的条件,只有在这个条件下并由于在这个条件下,商品价值才能存在。”这段话说明()
设ξ1=的一个特征向量.(Ⅰ)求常数a,b的值及ξ1所对应的特征值;(Ⅱ)矩阵A可否相似对角化?若A可对角化,对A进行相似对角化;若A不可对角化,说明理由.
Lookattheadvertisementbelow.Itshowsservicesofferedbyabusinessconsultancy.Forquestions6-10,decidewhich(A-H)would
Inthesecondhalfofeachyear,manypowerfulstormsareborninthetropicalAtlanticandCaribbeanseas.Of【C1】______,onlya
最新回复
(
0
)