有一个3×4的矩阵,键盘输入矩阵元素,要求输出矩阵,以及其中值最大和最小元素的值和它们的行号和列号
时间: 2024-12-03 16:31:26 浏览: 26
要实现这个功能,首先你需要创建一个3x4的二维数组(矩阵)存储用户输入的元素,然后遍历矩阵找到最大值和最小值及其位置。以下是一个简单的C程序示例:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
void printMatrix(int matrix[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
void findMinMax(int matrix[ROWS][COLS], int *minVal, int *minRow, int *minCol, int *maxVal, int *maxRow, int *maxCol) {
*minVal = matrix[0][0];
*minRow = 0;
*minCol = 0;
*maxVal = matrix[0][0];
*maxRow = 0;
*maxCol = 0;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (matrix[i][j] < *minVal) {
*minVal = matrix[i][j];
*minRow = i;
*minCol = j;
} else if (matrix[i][j] > *maxVal) {
*maxVal = matrix[i][j];
*maxRow = i;
*maxCol = j;
}
}
}
}
int main() {
int matrix[ROWS][COLS];
int minVal, minRow, minCol, maxVal, maxRow, maxCol;
// 输入矩阵元素
printf("Enter the elements of a 3x4 matrix:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 输出矩阵
printMatrix(matrix);
// 找到最大值和最小值
findMinMax(matrix, &minVal, &minRow, &minCol, &maxVal, &maxRow, &maxCol);
// 输出结果
printf("Minimum value: %d at row %d and column %d\n", minVal, minRow + 1, minCol + 1);
printf("Maximum value: %d at row %d and column %d\n", maxVal, maxRow + 1, maxCol + 1);
return 0;
}
```
在这个程序中,`printMatrix()` 函数用于打印矩阵,`findMinMax()` 函数用于查找并返回矩阵中的最小值、最大值以及对应的行和列。在`main()` 函数里,我们先接收用户的输入,然后调用这两个函数。
阅读全文