C语言,求含有13个整数的数组中的最大值和最小值,要求使用指针为函数参数的方法实现
时间: 2024-05-05 18:19:24 浏览: 90
好的,我知道了,下面是代码:
```
#include <stdio.h>
void max_min(int *arr, int len, int *max, int *min){
*max = *min = *arr; // 初始化最大值和最小值为数组的第一个元素
for(int i = 0; i < len; i++){
if(*(arr+i) > *max){
*max = *(arr+i);
}
if(*(arr+i) < *min){
*min = *(arr+i);
}
}
}
int main(){
int arr[13] = {2, 4, 6, 1, 9, 5, 10, 7, 3, 8, 13, 11, 12};
int max,min;
max_min(arr, 13, &max, &min);
printf("最大值为:%d\n最小值为:%d\n", max, min);
return 0;
}
```
这段代码使用了指针作为函数的参数,通过指针可以操作传入的数组元素。函数内部使用循环遍历整个数组,并记录最大值和最小值。最终将最大值和最小值通过指针返回给调用函数。
相关问题
c语言,由键盘输入n行,m列个整数放入二维数组中,编写函数,用指针做函数参数的方式,求该二维数组中的最大值和最小值,在主函数中将最大值和最小值输出。
可以按照以下步骤实现:
1. 在主函数中定义一个 n 行 m 列的二维数组,并使用循环从键盘输入每个元素的值。
2. 定义一个函数,函数接收二维数组的指针以及行列数作为参数,然后在函数中使用两个变量分别记录最大值和最小值,再使用双重循环遍历数组,比较每个元素的值与最大值和最小值,更新这两个变量的值。
3. 在主函数中调用该函数,并将最大值和最小值输出。
以下是代码实现:
```c
#include <stdio.h>
void findMinMax(int *arr, int rows, int cols, int *max, int *min) {
*max = *min = *arr; // 初始化最大值和最小值为数组第一个元素的值
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
int val = *(arr + i * cols + j); // 计算当前元素的值
if (val > *max) { // 如果当前元素的值比最大值还大,更新最大值
*max = val;
}
if (val < *min) { // 如果当前元素的值比最小值还小,更新最小值
*min = val;
}
}
}
}
int main() {
int n, m;
printf("请输入行数和列数:\n");
scanf("%d%d", &n, &m);
int arr[n][m];
printf("请输入每个元素的值:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &arr[i][j]);
}
}
int max, min;
findMinMax(&arr[0][0], n, m, &max, &min);
printf("最大值为:%d\n最小值为:%d\n", max, min);
return 0;
}
```
利用C语言编写程序,利用指针方法求数组的最大值与最小值
下面是一个利用指针方法求解数组的最大值与最小值的示例程序:
```c
#include <stdio.h>
void findMinMax(int* arr, int n, int* min, int* max)
{
// 初始化最小值和最大值
*min = *max = arr[0];
// 遍历数组查找最小值和最大值
for (int i = 1; i < n; i++) {
if (arr[i] < *min) {
*min = arr[i];
}
if (arr[i] > *max) {
*max = arr[i];
}
}
}
int main()
{
int arr[] = {5, 3, 7, 2, 8, 4};
int n = sizeof(arr) / sizeof(int);
int min, max;
findMinMax(arr, n, &min, &max);
printf("Minimum value: %d\n", min);
printf("Maximum value: %d\n", max);
return 0;
}
```
在上面的程序中,我们定义了一个 `findMinMax` 函数,它接受一个整数类型的数组、数组长度、最小值和最大值的指针作为参数。函数内部使用指针方法遍历数组,查找最小值和最大值,并将结果存储在 `min` 和 `max` 指针指向的内存位置中。
在 `main` 函数中,我们定义了一个整数类型的数组 `arr`,并计算出数组长度 `n`。然后,我们调用 `findMinMax` 函数,并将 `min` 和 `max` 的地址作为参数传递给它。最后,我们输出求得的最小值和最大值。
注意,指针方法可以修改函数外部变量的值,因此在调用 `findMinMax` 函数时,需要将 `min` 和 `max` 的地址传递给它。
阅读全文