用指针实现求三个数的最小值
时间: 2023-07-20 16:25:40 浏览: 49
好的,可以通过以下代码实现:
```c++
#include <iostream>
using namespace std;
int min(int *arr, int n) { // 定义一个函数,使用指针求最小值
int min_val = *arr;
for (int i = 1; i < n; i++) {
if (*(arr + i) < min_val) {
min_val = *(arr + i);
}
}
return min_val;
}
int main() {
int a = 1, b = 2, c = 3;
int arr[3] = {a, b, c};
int *p = arr;
cout << "三个数的最小值为:" << min(p, 3) << endl;
return 0;
}
```
运行结果:
```
三个数的最小值为:1
```
在上面的代码中,我们使用了一个 `min()` 函数来求三个数的最小值,该函数使用了指针来实现。在 `main()` 函数中,我们首先定义了三个变量 `a`、`b` 和 `c`,然后将它们存储在一个数组中,并将该数组的首地址赋值给了指针 `p`。最后,我们调用 `min()` 函数来求最小值,并输出结果。
相关问题
输入三个数输出最小值用指针法
可以使用指针法来实现输入三个数并输出最小值,具体代码如下:
```
#include <stdio.h>
// 使用指针法获取三个数中的最小值
int getMin(int *arr) {
int min = *arr;
for (int i = 1; i < 3; i++) {
if (*(arr + i) < min) {
min = *(arr + i);
}
}
return min;
}
int main() {
int arr[3];
printf("请输入三个数:\n");
for (int i = 0; i < 3; i++) {
scanf("%d", &arr[i]);
}
int min = getMin(arr);
printf("最小值为:%d\n", min);
return 0;
}
```
在上述代码中,使用了函数 `getMin` 来获取三个数中的最小值。这个函数接收一个指向数组首元素的指针 `arr`,通过指针法来访问数组中的元素,并找到最小值。在 `main` 函数中,首先输入三个数并存储在数组中,然后调用 `getMin` 函数来获取最小值并输出。
利用指针实现得到三个数中的最大值和最小值
可以使用指针作为函数参数,通过指针访问传入的三个数,并在函数中比较得到最大值和最小值。以下是示例代码:
```c
#include <stdio.h>
void findMinAndMax(int *a, int *b, int *c, int *min, int *max) {
*min = *a;
*max = *a;
if (*b < *min) {
*min = *b;
}
if (*c < *min) {
*min = *c;
}
if (*b > *max) {
*max = *b;
}
if (*c > *max) {
*max = *c;
}
}
int main() {
int a = 10, b = 5, c = 7;
int min, max;
findMinAndMax(&a, &b, &c, &min, &max);
printf("Min: %d, Max: %d\n", min, max);
return 0;
}
```
在上面的代码中,`findMinAndMax`函数接受三个指针类型的参数 `a`, `b`, `c`,以及两个指针类型的输出参数 `min`, `max`。在函数内部,使用指针访问传入的三个数,比较得到最大值和最小值,并通过指针修改输出参数 `min`, `max` 的值。在 `main` 函数中,需要将变量 `a`, `b`, `c` 的地址作为参数传入 `findMinAndMax` 函数中。