用指针求含有n(n不大于20)个元素的整型数组的最大值和最小值
时间: 2023-06-05 08:47:58 浏览: 126
可以定义两个变量max和min,分别存储数组中的最大值和最小值。然后用指针遍历整个数组,比较每个元素与max和min的大小关系,更新max和min的值即可。
具体实现如下:
```c++
void findMaxMin(int* arr, int n, int& max, int& min) {
max = arr[];
min = arr[];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
}
```
调用方式如下:
```c++
int arr[20] = {1, 2, 3, 4, 5};
int max, min;
findMaxMin(arr, 5, max, min);
cout << "max: " << max << endl;
cout << "min: " << min << endl;
```
输出结果为:
```
max: 5
min: 1
```
相关问题
用c++引用传递求整型数组最大值和最小值
使用C语言中的引用传递,可以通过传递数组的指针来求解整型数组的最大值和最小值。可以定义两个函数,一个用来求最大值,一个用来求最小值。具体步骤如下:
1. 创建两个函数max和min,接受整型数组的指针和数组的长度作为参数。
2. 在max函数中,初始化一个变量max_num为数组的第一个元素,然后遍历数组中的每个元素,如果当前元素大于max_num,则将max_num更新为当前元素。
3. 在min函数中,初始化一个变量min_num为数组的第一个元素,然后遍历数组中的每个元素,如果当前元素小于min_num,则将min_num更新为当前元素。
4. 在主函数中,声明一个整型数组并初始化,然后分别调用max和min函数,将数组的指针和长度作为参数传递给这两个函数。
5. 最后,在主函数中输出最大值和最小值。
示例代码如下:
```
#include <iostream>
using namespace std;
void max(int *arr, int size) {
int max_num = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max_num) {
max_num = arr[i];
}
}
cout << "最大值: " << max_num << endl;
}
void min(int *arr, int size) {
int min_num = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] < min_num) {
min_num = arr[i];
}
}
cout << "最小值: " << min_num << endl;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
max(arr, size);
min(arr, size);
return 0;
}
```
定义一维数组int a[20],键盘输入n个数(1≤n≤20),利用移动指针的形式求数组a中最大值和最小值。
在C语言中,你可以通过定义一个一维整型数组`int a[20]`,然后使用两个变量分别存储当前找到的最大值和最小值,以及一个索引`i`来遍历数组。以下是实现这一功能的基本步骤:
1. 初始化最大值和最小值为数组的第一个元素`a[0]`。
2. 使用一个for循环,从索引`i = 1`开始,因为已经检查过第一个元素了。
- 对于每个元素`a[i]`,比较它与当前最大值和最小值:
- 如果`a[i]`大于当前最大值,更新最大值。
- 同理,如果`a[i]`小于当前最小值,更新最小值。
3. 循环结束后,`max_value`和`min_value`将分别保存数组中的最大值和最小值。
这里是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
int a[20];
int n, i;
printf("请输入数字的数量(1到20): ");
scanf("%d", &n);
if (n > 20 || n < 1) {
printf("错误!请输入1到20之间的数字。\n");
return 0;
}
// 输入数组元素
for (i = 0; i < n; i++) {
printf("请输入第%d个数: ", i + 1);
scanf("%d", &a[i]);
}
// 初始化最大值和最小值
int max_value = a[0], min_value = a[0];
// 搜索数组以找到最大值和最小值
for (i = 1; i < n; i++) {
if (a[i] > max_value) {
max_value = a[i];
}
if (a[i] < min_value) {
min_value = a[i];
}
}
printf("数组中的最大值是: %d\n", max_value);
printf("数组中的最小值是: %d\n", min_value);
return 0;
}
```
阅读全文
相关推荐
















