在C语言中输入一个矩阵,通常有以下几种方法:
使用二维数组
首先,定义一个二维数组来存储矩阵的元素。
然后,使用嵌套循环逐行逐列地读取用户输入的数据。
```c
include
int main() {
int row, col;
printf("请输入矩阵的行数: ");
scanf("%d", &row);
printf("请输入矩阵的列数: ");
scanf("%d", &col);
int matrix[row][col];
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
printf("请输入矩阵元素(行数%d,列数%d): ", i + 1, j + 1);
scanf("%d", &matrix[i][j]);
}
}
// 打印矩阵
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
printf("%d ", matrix[i][j]);
}
printf("
");
}
return 0;
}
```
使用动态内存分配
动态分配内存来存储矩阵的行和列。
使用嵌套循环逐行逐列地读取用户输入的数据。
```c
include include int main() { int rows, cols; printf("请输入矩阵的行数和列数: "); scanf("%d %d", &rows, &cols); int matrix = (int )malloc(rows * sizeof(int *)); for (int i = 0; i < rows; i++) { matrix[i] = (int *)malloc(cols * sizeof(int)); } printf("请输入矩阵的元素: "); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { scanf("%d", &matrix[i][j]); } } // 打印矩阵 for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { printf("%d ", matrix[i][j]); } printf(" "); } // 释放内存 for (int i = 0; i < rows; i++) { free(matrix[i]); } free(matrix); return 0; } ``` 定义一个结构体来表示矩阵,包含行数、列数和数据指针。 使用动态内存分配来存储矩阵的数据。使用结构体