编写代码用指针实现求3*4整数矩阵的最大值,最小值和平均值。C语言
时间: 2024-12-29 16:28:21 浏览: 8
在C语言中,我们可以使用指针来遍历二维数组并计算最大值、最小值和平均值。以下是一个简单的示例:
```c
#include <stdio.h>
// 函数声明
double max(int *matrix, int rows, int cols);
double min(int *matrix, int rows, int cols);
double average(int *matrix, int rows, int cols);
int main() {
int matrix[3][4] = { {5, 8, 1, 9}, {3, 6, 7, 4}, {2, 10, 11, 12} }; // 3x4矩阵
int i, j;
int rows = sizeof(matrix) / sizeof(matrix[0]);
int cols = sizeof(matrix[0]) / sizeof(matrix[0][0]);
printf("Matrix:\n");
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
double max_val = max(&matrix[0][0], rows, cols);
double min_val = min(&matrix[0][0], rows, cols);
double avg_val = average(&matrix[0][0], rows, cols);
printf("\nMax value: %lf\n", max_val);
printf("Min value: %lf\n", min_val);
printf("Average value: %lf\n", avg_val);
return 0;
}
// 求最大值的函数
double max(int *arr, int rows, int cols) {
int max_num = arr[0];
for (int i = 0; i < rows * cols; i++) {
if (arr[i] > max_num)
max_num = arr[i];
}
return max_num;
}
// 求最小值的函数
double min(int *arr, int rows, int cols) {
int min_num = arr[0];
for (int i = 0; i < rows * cols; i++) {
if (arr[i] < min_num)
min_num = arr[i];
}
return min_num;
}
// 计算平均值的函数
double average(int *arr, int rows, int cols) {
int sum = 0;
for (int i = 0; i < rows * cols; i++)
sum += arr[i];
return (double)sum / (rows * cols);
}
```
这个程序首先定义了一个3x4的矩阵,并使用指针遍历矩阵来找到最大值、最小值和计算平均值。`max`、`min` 和 `average` 函数分别用于计算这些数值。
阅读全文