C++ 找到数组中最大值的函数
数组是一组相关的数据片段,它们在内存中紧密相连。直接通过使用索引号来检索每个数据片段是唯一的方法,这使得它成为最基本的数据结构。
将数组项按升序排列,可以很容易地识别出具有最大值的元素。排序后,第一个元素将表示数组中最小的元素,其后是第二小的元素、最大的元素等。
在本文中,我们将看到如何使用函数在数组中查找最大的元素。
使用线性遍历
处理此问题最简单也是最基本的方法是遍历整个列表并选择具有最高值的元素。
示例:
// C++ program to find maximum
// in arr [ ] of size n
#include < bits / stdc + + . h >
#include < sdtlib >
#include < iostream >
#include < stdio >
#include < conio. H >
using namespace std ;
int largest ( int arr [ ] , int n )
{
int i ;
// Initialize maximum element
int max = arr [ 0 ] ;
// Traverse array elements
// from second and compare
// every element with current max
for ( i = 1 ; i < n ; i + + )
if ( arr [ i ] > max )
max = arr [ i ] ;
return max ;
}
// Driver Code
int main ( )
{
int arr [ ] = { 10 , 324 , 45 , 90 , 9808 } ;
int n = sizeof ( arr ) / sizeof (arr [ 0 ] ) ;
cout << " Largest in given array is " << largest ( arr , n ) ;
return 0 ;
}
输出:
Largest in given array is 9808
..........................
Process executed in 1.22 seconds
Press any key to continue.
解释
为了保存列表中的最大值,创建一个名为max的局部变量。要开始比较,将max初始化为第一个元素。然后,通过从第二个元素开始遍历提供的数组,一直到第一个元素,将每个元素与最大值进行比较。如果当前元素超过了max,则用当前元素替换max的值。最后返回并显示max中放入的最大数组元素的值。
使用库函数
示例:
// C++ program to find maximum in arr[] of size n
#include < bits / stdc + + . h >
#include < sdtlib >
#include < iostream >
#include < stdio >
#include < conio. H >
using namespace std ;
// returns maximum in arr [ ] of size n
int largest ( int arr [ ] , int n )
{
return * max_element ( arr , arr + n ) ;
}
int main ( )
{
int arr [ ] = { 10 , 324 , 45 , 90 , 9808 } ;
int n = sizeof ( arr ) / sizeof ( arr [ 0 ] ) ;
cout << largest ( arr , n ) ;
return 0 ;
}
输出:
9808
..........................
Process execute din 1.33 seconds
Press any key to continue.
解释
要确定最大元素,大多数语言都包含了适当的内置函数max()类型,比如C++的std: :max element。这个函数允许我们快速确定最大元素。
使用循环
#include < stdio . h >
#include < bits / stdc + + . h >
#include < iostream >
#include < stdlib >
#include < conio . h>
int main ( ) {
int n ;
double arr [ 100 ] ;
cout << " enter the number of elements ( 1 to 100 ) : " << endl ;
cin >> n ;
for ( int i = 0 ; i < n ; + + i ) {
cout << "enter number : " << i + 1 << endl;
cin >> arr [ i ] ;
}
// storing the largest number to arr [ 0 ]
for ( int i = 1 ; i < n ; + + i ) {
if ( arr [ 0 ] < arr [ i ] ) {
arr [ 0 ] = arr [ i ] ;
}
}
cout<< " Largest element = " , arr [ 0 ] ) ;
return 0 ;
}
输出:
enter the number of elements ( 1 to 100 ) : 5
enter number1 : 34.5
enter number2 : 2.4
enter number3 : -35.5
enter number4 : 38.7
enter number5 : 24.5
Largest element = 38.70
..........................
Process executed in 1.22 seconds
Press any key to continue.
说明
- 用户输入n个项目,该软件将其保存在arr数组中。
- 为了确定最大的元素,
- 首先验证数组的前两个成员中的最大值,然后将其存储在arr [0]中。
- 检查第一个和第三个项目后,将其中较大的一个放置在arr [0]中。
- 这个过程会一直继续,直到检查完第一个和最后一个成员。
- arr [0]位置将被用来保存最大的数字。