输入一个n×m的整数矩阵(n<=10,m<=10),然后输出其中的最大值、最小值,并输出这两个值的下标。C语言
时间: 2025-06-15 13:20:33 浏览: 13
在C语言中,你可以使用数组和循环来解决这个问题。首先,创建一个二维数组来存储输入的矩阵,然后分别初始化最大值和最小值为数组的第一个元素,同时记录最大值和最小值的行索引和列索引。接下来遍历整个数组,更新最大值和最小值以及对应的下标。
以下是一个简单的示例函数:
```c
#include <stdio.h>
void findMinMax(int matrix[n][m], int n, int m, int max_val[], int min_val[], int max_row[], int max_col[], int min_row[], int min_col) {
max_val[0] = min_val[0] = matrix[0][0];
max_row[0] = min_row[0] = 0;
max_col[0] = min_col[0] = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (matrix[i][j] > max_val[0]) {
max_val[0] = matrix[i][j];
max_row[0] = i;
max_col[0] = j;
}
if (matrix[i][j] < min_val[0]) {
min_val[0] = matrix[i][j];
min_row[0] = i;
min_col[0] = j;
}
}
}
}
// 主函数
int main() {
int n, m;
printf("Enter number of rows and columns (max 10): ");
scanf("%d %d", &n, &m);
// 保证大小在允许范围内
if (n > 10 || m > 10) {
printf("Error: Size exceeds the limit.\n");
return 1;
}
int matrix[n][m];
printf("Enter the elements of the matrix:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &matrix[i][j]);
}
}
int max_val[2], min_val[2], max_row[2], max_col[2], min_row[2], min_col[2];
findMinMax(matrix, n, m, max_val, min_val, max_row, max_col, min_row, min_col);
printf("Max value: %d, Row: %d, Column: %d\n", max_val[0], max_row[0], max_col[0]);
printf("Min value: %d, Row: %d, Column: %d\n", min_val[0], min_row[0], min_col[0]);
return 0;
}
```
这个程序首先获取用户输入的矩阵大小和元素,然后计算并打印出最大值、最小值及其所在的行和列下标。注意,这里假设输入的数据有效并且在范围之内。如果需要处理错误输入,可以在`main()`函数中添加额外的验证。
阅读全文
相关推荐


















