首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编写程序,实现矩阵(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
196
问题
编写程序,实现矩阵(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>voidabc(char*str){inta,b,i,j;for(i=j=0;str[i]!=’\0’;i++)if(str[i]!=’a’)str[j++]=str[j];
下列选项中,不是一个算法的基本特征的是()。
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。intmystrlen(char*str){intifor(i=0;______!=’\0’;i++);return(i);}
以下合法的字符型常量是
下面程序的运行结果是【】。#include#defineSIZE12main(){chars[SIZE];intI;for(I=0;I
已有定义:charc=′′;inta=1,b;(此处c的初值为空格字符),执行b=!c&&a;后b的值为【】。
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
若有以下函数首部intfun(doublex[10],int*n)则下面针对此函数的函数声明语句中正确的是
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
函数的值通过return语句返回,下面关于return语句的形式描述错误的是
随机试题
求微分方程y’+=0满足条件y|x=0=1的特解.
A.六淫B.瘀血C.痰饮D.戾气其形成后,影响血液的运行,导致经脉阻滞不通的是
以下哪项不属于降压药治疗对象
甲从某商场购回一个玻璃钢燃气灶。使用几天后,燃气灶突然炸裂,甲被碎片刺瞎左眼。下列哪些说法正确?
某IT企业职员2006年税前月薪6000元,另有1000元住房及交通补助。如果每月个人缴纳的“三险”合计为500元,则每月应纳所得税()(2006年起个人所得税费用减除标准调整为1600元)
全国银行间同业拆借中心与中央国债登记结算有限责任公司在收到买断式回购双方的最终仲裁或诉讼结果报告后3个工作日内将最终结果予以公告。()
企业合并中发生的审计、法律服务、评估咨询等与合并相关的费用,正确的会计处理方法有()。
我国税收制度按照构成方法和形式分类属于()。
时间知觉
WhatisthepurposeofJaneandRick’smeetingwiththetutor?
最新回复
(
0
)