C++查找数组中的最大值和最小值

/*
知识点:bool 类型 命名空间 输入输出 
题目要求:使用函数找出一个整型数组中的最大值或最小值 
*/ 

#include<stdlib.h>
#include<iostream>
using namespace std;

int getMaxOrMin(int *arr,int count,bool isMax){
	int temp=arr[0];
	for(int i=1;i<count;i++){
		if(isMax){
			if(temp<arr[i]){
			temp=arr[i];
			}
		}else{
			if(temp>arr[i]){
			temp=arr[i];
			}			
		}	
	}
	return temp;	
}
int main(void){
	int arr1[4]={3,5,1,7};
	bool isMax=false;
	cin>>isMax;//从键盘接收 
	cout<<getMaxOrMin(arr1,4,isMax)<<endl;//输出 
	system("pause");
	return 0;
} 

使用命名空间

/*
知识点:bool 类型 命名空间 输入输出 
题目要求:使用函数找出一个整型数组中的最大值或最小值 
*/ 

#include<stdlib.h>
#include<iostream>
using namespace std;

namespace CompA
{
	int getMaxOrMin(int *arr,int count,bool isMax){
	int temp=arr[0];
	for(int i=1;i<count;i++){
		if(isMax){
			if(temp<arr[i]){
			temp=arr[i];
			}
		}else{
				if(temp>arr[i]){
			temp=arr[i];
			}			
		}	
	}
	return temp;	
	}
}

int main(void){
	int arr1[4]={3,5,1,7};
	bool isMax=false;
	cin>>isMax;//从键盘接收 
	cout<<CompA::getMaxOrMin(arr1,4,isMax)<<endl;//输出 
	system("pause");
	return 0;
} 

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 最大和最小,子函数的返回为void,通过指针参数返回最大和最小。主函数输入数组元素,调用子函数查找最大和最小,并输出结果。 以下是代码示例: ```c++ #include <iostream> using namespace std; void findMaxMin(int *arr, int size, int *max, int *min) { *max = *min = *arr; // 初始化最大和最小数组第一个元素 for (int i = 1; i < size; i++) { if (*(arr+i) > *max) { *max = *(arr+i); // 更新最大 } if (*(arr+i) < *min) { *min = *(arr+i); // 更新最小 } } } int main() { const int size = 5; int arr[size]; cout << "请输入" << size << "个整数:" << endl; for (int i = ; i < size; i++) { cin >> arr[i]; } int max, min; findMaxMin(arr, size, &max, &min); // 调用子函数查找最大和最小 cout << "最大为:" << max << endl; cout << "最小为:" << min << endl; return ; } ``` 运行结果: ``` 请输入5个整数: 3 5 1 4 2 最大为:5 最小为:1 ``` ### 回答2: 本题要求我们编写一个子函数,实现查找数组的最大和最小,并在主函数定义并输入一个数组,并使用指针作为函数参数,调用子函数,输出数组的最大和最小。 首先,在主函数定义一个数组,输入数据。然后通过指针将数组地址作为参数传递给子函数。在子函数,使用指针的方式依次遍历数组,比较大小,得出最大和最小。最后将结果通过指针传递回主函数,输出结果。 以下是代码实现: ```c++ #include <iostream> using namespace std; void FindMinMax(int *p,int n,int *max,int *min){ *max=*min=*p; for(int i=0;i<n;i++){ if(*(p+i)>*max) *max=*(p+i); if(*(p+i)<*min) *min=*(p+i); } } int main(){ int a[10], n=10, max=0, min=0; cout<<"请输入10个数字:\n"; for(int i=0;i<n;i++){ cin>>a[i]; } FindMinMax(a,n,&max,&min); cout<<"最大为:"<<max<<"\n"; cout<<"最小为:"<<min<<"\n"; return 0; } ``` 运行结果: 请输入10个数字: 1 2 3 4 5 6 7 8 9 10 最大为:10 最小为:1 在这个程序,我们首先在主函数定义了一个长度为10的数组a,并输入数据。然后,我们调用FindMinMax函数,将a数组的地址作为实参传入。在FindMinMax函数,我们使用指针p依次遍历数组a,使用max和min指针记录当前的最大和最小。最后通过指针max和min将结果传回主函数,输出。 需要注意的是,在FindMinMax函数要使用*p来获取指针p指向的。另外,在调用FindMinMax函数时,我们需要将max和min指针也作为实参传入,并加&符号表示取地址。这是因为我们需要在子函数内部修改max和min指针指向的,并将结果传回主函数。 ### 回答3: 本题需要编写一个子函数实现查找数组最大和最小的功能,并在主函数调用该子函数来查找输入的数组的最大和最小。为了完成这个任务,需要运用指针的知识。以下是如何编写该子函数的步骤: 1. 首先定义一个函数来查找数组的最大和最小。该函数应该接收一个指针参数,该参数指向需要查找数组。 2. 在函数,定义两个变量,一个用于存储最大,另一个用于存储最小。可以定义一个指针来引用这两个变量。 3. 使用循环遍历数组的所有元素,依次比较每个元素与当前的最大和最小,以更新它们。 4. 最后,返回指向两个变量的指针。 下面是一个示例代码: ``` #include <stdio.h> void findMaxAndMin(int *arr, int size, int **max, int **min) { *max = *min = arr; // 初始时假定第一个元素为最大和最小 for (int i = 1; i < size; i++) { if (*(arr + i) > **max) { *max = arr + i; } if (*(arr + i) < **min) { *min = arr + i; } } } int main() { int arr[10]; // 定义一个数组 int size = 10; // 数组大小 int *max, *min; // 定义指向最大和最小的指针 printf("请输入数组元素:"); for (int i = 0; i < size; i++) { scanf("%d", &arr[i]); } findMaxAndMin(arr, size, &max, &min); // 调用子函数 printf("最大是:%d\n", *max); printf("最小是:%d\n", *min); return 0; } ``` 在上面的代码,定义了一个名为 `findMaxAndMin` 的函数,它有 4 个参数:`arr` 是需要查找数组,`size` 是数组大小,`max` 和 `min` 是指向保存最大和最小的指针。在函数,先将指向 `max` 和 `min` 的指针指向数组的第一个元素,然后使用循环遍历整个数组,每次比较数组的元素与当前的最大和最小,最后返回指向 `max` 和 `min` 的指针。 在主函数,首先创建一个数组并输入元素。然后调用 `findMaxAndMin` 函数来查找数组的最大和最小,并将结果存储在指向 `max` 和 `min` 的指针。最后,输出最大和最小。 需要注意的是,在调用 `findMaxAndMin` 函数时,需要使用 `&max` 和 `&min` 来传递指向指针的指针,因为需要修改指向 `max` 和 `min` 的指针的内容,而不仅仅是指针本身的。此外,在输出最大和最小时,需要使用 `*max` 和 `*min` 来解引用指向指针的指针,获取指针所指向的变量的

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值