用c语言从键盘输入一个整数二维数组及其维度,查找该数组中的最大值和最小值以及其对应的行列下标。
时间: 2024-10-13 19:10:30 浏览: 106
C语言第07章-一维数组和二维数组1完整.pptx
在C语言中,你可以通过以下步骤实现这个功能:
1. 首先,需要从用户那里获取二维数组的行数(行维度)和列数(列维度)。可以使用`scanf`函数来读取整数。
2. 然后,创建一个指定大小的二维数组,并提示用户逐行输入每个元素。可以使用嵌套循环来存储用户输入的数据。
3. 接着,初始化两个变量分别用于存储当前找到的最大值和最小值,以及相应的行索引和列索引。将它们设为第一个元素的值和下标。
4. 对于数组中的每一个元素,如果它的值大于当前最大值,就更新最大值和最大值的坐标;如果小于当前最小值,则更新最小值和最小值的坐标。
5. 最后,输出最大值、最大值的行索引和列索引,以及最小值、最小值的行索引和列索引。
下面是一个简单的示例代码片段:
```c
#include <stdio.h>
int main() {
int rows, cols;
printf("请输入二维数组的行数和列数:");
scanf("%d %d", &rows, &cols);
int arr[rows][cols];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("请输入第%d行第%d列的元素:", i+1, j+1);
scanf("%d", &arr[i][j]);
}
}
int max_value = arr[0][0], min_value = arr[0][0];
int max_row = 0, max_col = 0, min_row = 0, min_col = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (arr[i][j] > max_value) {
max_value = arr[i][j];
max_row = i;
max_col = j;
} else if (arr[i][j] < min_value) {
min_value = arr[i][j];
min_row = i;
min_col = j;
}
}
}
printf("最大值:%d, 行:%d, 列:%d\n", max_value, max_row + 1, max_col + 1);
printf("最小值:%d, 行:%d, 列:%d\n", min_value, min_row + 1, min_col + 1);
return 0;
}
```
阅读全文