实验题目(2)【见实验教材实验五的题目2】:编写程序exp5_2.c,定义一个3*3的矩阵,要求实现:读入矩阵;输出矩阵;矩阵转置;输出矩阵主对角线元素之和。所有功能均采用自定义函数实现。
时间: 2024-12-16 12:21:29 浏览: 71
实验题目【实验五 题目2】的目的是让你实践基本的C语言编程技能。你需要完成以下几个步骤:
1. 定义结构体:首先,创建一个结构体表示3x3的矩阵,包含三个行数组,每个数组有三个元素。
```c
typedef struct {
int matrix[3][3];
} Matrix;
```
2. 输入矩阵:编写一个函数`inputMatrix(Matrix *matrix)`,用于从用户处接收输入并填充矩阵。
```c
void inputMatrix(Matrix *matrix) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
scanf("%d", &matrix->matrix[i][j]);
}
}
}
```
3. 输出矩阵:编写一个函数`outputMatrix(const Matrix *matrix)`,将矩阵打印到控制台。
```c
void outputMatrix(const Matrix *matrix) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", matrix->matrix[i][j]);
}
printf("\n");
}
}
```
4. 矩阵转置:创建一个函数`transpose(Matrix *original, Matrix *transposed)`,将原矩阵的元素交换至新矩阵的对应位置。
```c
void transpose(Matrix *original, Matrix *transposed) {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
transposed->matrix[j][i] = original->matrix[i][j];
}
}
}
```
5. 计算主对角线元素之和:创建一个函数`sumDiagonal(int matrix[3][3])`,返回矩阵的主对角线上所有元素的和。
```c
int sumDiagonal(int matrix[3][3]) {
int sum = 0;
for (int i = 0; i < 3; i++) {
sum += matrix[i][i];
}
return sum;
}
```
6. 主函数:在`main()`中调用上述所有函数,并显示结果。
```c
int main() {
Matrix myMatrix, transposedMatrix;
// 其他函数调用...
return 0;
}
```
阅读全文
相关推荐













