用c语言找到二维数组a每行中最小元素的下标
时间: 2024-12-15 21:24:57 浏览: 16
C语言实验报告《数组》.doc
在C语言中,为了找到二维数组`a`中每一行的最小元素及其下标,你可以创建两个一维数组,一个用于存储最小值,另一个用于存储对应下标。这里是一个简单的示例,假设`a`是已经初始化的整数型二维数组:
```c
#include <stdio.h>
// 定义一个辅助函数来找到最小值和其下标
void findMin(int a[][size], int row_size, int *min_values, int *row_indices, int *col_indices, int i) {
int min_val = a[i][0]; // 假设第一列是最小值
int min_col_index = 0;
for (int j = 1; j < row_size; j++) {
if (a[i][j] < min_val) {
min_val = a[i][j];
min_col_index = j;
}
}
min_values[i] = min_val; // 存储最小值
row_indices[i] = i; // 存储行下标
col_indices[i] = min_col_index; // 存储最小值所在的列下标
}
int main() {
int rows, cols;
printf("Enter number of rows and columns: ");
scanf("%d %d", &rows, &cols);
// 初始化二维数组a,假设用户输入的值
int a[rows][cols];
// 初始化辅助数组
int min_values[rows], row_indices[rows], col_indices[rows];
// 遍历每一行
for (int i = 0; i < rows; i++) {
findMin(a, cols, min_values, row_indices, col_indices, i);
}
// 输出结果
for (int i = 0; i < rows; i++) {
printf("Row %d's minimum value is %d at index (%d,%d)\n", i + 1, min_values[i], row_indices[i], col_indices[i]);
}
return 0;
}
```
这段代码首先获取数组的行数和列数,然后遍历每一行找到最小值及其下标,并分别存储在`min_values`、`row_indices`和`col_indices`数组中。
阅读全文