用c语言编写 有两2*3规模的矩阵a和b,编写程序,求两个矩阵之和。重做插入运 算符和提取运算符,使之能用于该矩阵的输入和输出。重载运算符“+”,使 之能用于矩阵相加,如c=a+b
时间: 2024-04-30 16:24:27 浏览: 100
C语言程序设计-编写程序, 求矩阵(3行3列)与2的乘积 .c
5星 · 资源好评率100%
以下是用C语言编写的程序,实现两个2x3规模的矩阵相加,并且重载了插入运算符和提取运算符,可以用于输入和输出矩阵:
```c
#include <stdio.h>
// 定义矩阵结构体
typedef struct {
int matrix[2][3];
} Matrix;
// 重载插入运算符,用于输入矩阵
void operator>>(FILE* in, Matrix* m) {
for(int i=0; i<2; i++) {
for(int j=0; j<3; j++) {
fscanf(in, "%d", &m->matrix[i][j]);
}
}
}
// 重载提取运算符,用于输出矩阵
void operator<<(FILE* out, Matrix* m) {
for(int i=0; i<2; i++) {
for(int j=0; j<3; j++) {
fprintf(out, "%d ", m->matrix[i][j]);
}
fprintf(out, "\n");
}
}
// 重载加法运算符,实现矩阵相加
Matrix operator+(Matrix& a, Matrix& b) {
Matrix c;
for(int i=0; i<2; i++) {
for(int j=0; j<3; j++) {
c.matrix[i][j] = a.matrix[i][j] + b.matrix[i][j];
}
}
return c;
}
int main() {
Matrix a, b, c;
// 从文件中读入矩阵a和b
FILE* in = fopen("input.txt", "r");
if(in) {
in >> &a;
in >> &b;
fclose(in);
}
// 计算矩阵c,并输出到文件中
c = a + b;
FILE* out = fopen("output.txt", "w");
if(out) {
out << &c;
fclose(out);
}
return 0;
}
```
输入文件(input.txt)格式如下:
```
1 2 3
4 5 6
7 8 9
10 11 12
```
输出文件(output.txt)格式如下:
```
8 10 12
14 16 18
```
阅读全文