第18题 编写程序,实现矩阵(3行3列)的转置(即行列互换)。

本文详细介绍了如何使用C语言进行二维数组的输入、输出和矩阵转置操作,包括了二维数组的基本概念、初始化方法及转置过程的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 #include<stdio.h>
 2 void P(int a[][3])        //【warning】二维数组必须给出列的具体数据
 3 {
 4     for(int i=0 ; i<3 ; ++i)
 5     {
 6         for(int j=0 ; j<3 ;++j)
 7             printf("%d ",a[i][j]);
 8         printf("\n");
 9     }
10 }
11 int main(int argc , char* argv[])
12 {
13     int arr[3][3]={ 1,2,4,
14                     3,5,7,
15                     9,0,6 };
16     printf("原始:\n");
17     P(arr);
18     for(int i=0 ; i<3 ; ++i)
19         for(int j=i ; j<3 ; ++j)
20         {
21             int tmp=arr[i][j];
22             arr[i][j]=arr[j][i];
23             arr[j][i]=tmp;
24         }
25     printf("转置:\n");
26     P(arr);
27     return 0;
28 }

涉及到二维数组传参数的方法

转载于:https://www.cnblogs.com/Evence/p/4455422.html

Proj107: 请使用"答"菜单或使用VC6打开考生文件夹下的工程文件proj107。其中声明了Matrix类,它是一个用于表示矩阵的类。其成员函数transpose的功能是实现矩阵转置运算。将矩阵A的行列互换,所得到的矩阵称为A的转置记作AT。例如,若有3×3矩阵 则A的转置为 请编写成员函数transpose,以实现矩阵转置功能。要求:补充编制的内容写在//********333********与//********666********两之间。不得修改程序的其他部分。注意:程序最后已经将结果输出到文件out21.dat中。输出函数writeToFile在本程序中调用。 头文件: #include <iostream> #include <iomanip> using namespace std; const int M = 18; const int N = 18; class Matrix { int array[M][N]; public: Matrix() { } int getElement(int i, int j)const{ return array[i][j]; } void setElement(int i, int j, int value){ array[i][j]=value; } void transpose(); void show(const char *s)const { cout<<endl<<s; for (int i = 0; i < M; i++){ cout<<endl; for (int j = 0; j < N; j++) cout<<setw(4)<<array[i][j]; } } }; void readFromFile(const char*, Matrix&); void writeToFile(char *, const Matrix&); 源文件: #include<fstream> #include "proj107.h" void readFromFile(const char* filename, Matrix& m) { ifstream infile(filename); if (!infile) { cerr << "无法读取输入数据文件!\n"; return; } int d; for (int i = 0; i < M; i++) for (int j = 0; j < N; j++){ infile >> d; m.setElement(i, j, d); } } void Matrix::transpose() { //********333******** //********666******** } void writeToFile(char*filename,Matrix&m) { ofstream outfile(filename); for(int i=0;i<M;++i) { for(int j=0;j<N;++j) outfile<<m.getElement(i,j)<<" "; outfile<<endl; } } int main() { Matrix m; readFromFile("in21.dat", m); m.show("Before transpose:"); m.transpose(); m.show("After transpose:"); writeToFile("out21.dat",m); return 0; } 解答目问并写出补充编程详细代码
最新发布
06-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值