用C语言编写程序,创建一个4*4的二维数组,二维数组的值是随机的二位正整数,输出该二维数组。找出并输出矩阵中最大值、最小值以及它们所在的下标。
时间: 2024-12-02 08:17:51 浏览: 7
2012计算机国二C语言等级考试题库(内部资料)程序编辑.pdf
在C语言中,你可以使用`stdlib.h`库中的`rand()`函数生成随机数,并结合数组索引来填充二维数组。然后,遍历数组来找到最大值、最小值及其位置。以下是简单的步骤:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROWS 4
#define COLS 4
void initialize_matrix(int matrix[ROWS][COLS]) {
srand(time(0)); // 设置随机种子
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
matrix[i][j] = rand() % 100 + 1; // 生成1到100之间的随机数(包括1)
}
}
}
void find_max_min_and_indices(int matrix[ROWS][COLS], int row[], int col[]) {
int max_val = matrix[0][0];
int min_val = matrix[0][0];
int max_row = 0;
int max_col = 0;
int min_row = 0;
int min_col = 0;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (matrix[i][j] > max_val) {
max_val = matrix[i][j];
max_row = i;
max_col = j;
}
if (matrix[i][j] < min_val) {
min_val = matrix[i][j];
min_row = i;
min_col = j;
}
}
}
printf("Max Value: %d at (%d,%d)\n", max_val, max_row, max_col);
printf("Min Value: %d at (%d,%d)\n", min_val, min_row, min_col);
}
int main() {
int matrix[ROWS][COLS];
int max_row, max_col;
int min_row, min_col;
initialize_matrix(matrix);
find_max_min_and_indices(matrix, &max_row, &max_col);
find_max_min_and_indices(matrix, &min_row, &min_col); // 使用指针避免复制地址
return 0;
}
```
当你运行这个程序,它会首先初始化一个4x4的二维数组,填充随机的两位正整数,然后找到并输出矩阵的最大值、最小值及其对应的行和列索引。
阅读全文