c语言C语言考试练习题_矩阵转置第一行为整数N(N<=10)。接着是一个N*N的矩阵。
时间: 2024-10-22 11:28:37 浏览: 42
青少年软件编程(C语言)等级考试试卷(二级)-2021年03月
C语言中,矩阵转置是一种常见的操作,尤其是在处理线性代数问题时。给定的练习题目通常会包含这样的结构:
首先,输入部分需要读取一个整数N(表示矩阵的行数和列数),确保N的值不超过10。接下来是一系列的N乘以N的元素,这些元素构成一个矩阵。
例如,如果你有一个3x3的矩阵:
```
1 2 3
4 5 6
7 8 9
```
对应的N值就是3,矩阵转置后将变成:
```
1 4 7
2 5 8
3 6 9
```
在C语言中实现矩阵转置的一种常见方法是使用二维数组,并通过两个嵌套循环交换行和列的位置。这是一个简化的例子:
```c
#include <stdio.h>
void transpose(int matrix[N][N], int N) {
for (int i = 0; i < N; ++i) { // 遍历原矩阵的行
for (int j = i; j < N; ++j) { // 从当前行开始遍历到最后一列
// 临时存储原矩阵[i][j]的值
int temp = matrix[i][j];
// 将原矩阵[j][i]的值赋给matrix[i][j]
matrix[i][j] = matrix[j][i];
// 最后将临时存储的值放回原位置matrix[j][i]
matrix[j][i] = temp;
}
}
}
// 测试函数
int main() {
int N, matrix[10][10];
scanf("%d", &N);
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
scanf("%d", &matrix[i][j]);
}
}
transpose(matrix, N); // 转置矩阵
// 打印转置后的矩阵
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
阅读全文