C语言一个代码求3*3矩阵中最大元素所在的行列位置。要求在主函数中分别调用输入函数、求最大元素值的函数、输出函数实现。
时间: 2024-11-30 14:22:09 浏览: 37
在C语言中,你可以创建一个简单的程序来实现这个功能。首先,你需要定义三个函数:`input_matrix`用于从用户处获取矩阵,`find_max_element`用于查找矩阵中的最大元素及其位置,以及`output_result`用于打印结果。以下是详细的步骤:
```c
#include <stdio.h>
// 输入矩阵函数
int** input_matrix(int rows, int cols) {
int **matrix = malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
matrix[i] = malloc(cols * sizeof(int));
for (int j = 0; j < cols; j++) {
scanf("%d", &matrix[i][j]);
}
}
return matrix;
}
// 求最大元素并返回其位置的函数
void find_max_element(int **matrix, int rows, int cols, int *row, int *col) {
*max_value = matrix[0][0]; // 初始化最大值为第一个元素
*row = 0;
*col = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (matrix[i][j] > *max_value) {
*max_value = matrix[i][j];
*row = i;
*col = j;
}
}
}
}
// 输出结果函数
void output_result(int max_value, int row, int col) {
printf("最大元素 %d 位于第 %d 行,第 %d 列\n", max_value, row + 1, col + 1);
}
int main() {
int rows, cols;
printf("请输入矩阵的行数和列数: ");
scanf("%d %d", &rows, &cols);
int *row = NULL, *col = NULL;
int max_value = 0;
// 输入矩阵
int **matrix = input_matrix(rows, cols);
// 查找最大元素
find_max_element(matrix, rows, cols, &row, &col);
// 输出结果
output_result(max_value, row, col);
// 清理内存
for (int i = 0; i < rows; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}
```
阅读全文