一、算法思想
假设N个数存储在一维数组中,令第一个数为最大值,从第二个数开始逐个和当前最大值进行比较,若比当前最大值大,则用它替换当前最大值。最后保存的最大值即为N个数中的最大值。
二、 *** 作过程
49 38 65 97 76 13 27 49 max = 49^
49 38 65 97 76 13 27 49 max = 65
^
49 38 65 97 76 13 27 49 max = 97
^
49 38 65 97 76 13 27 49 max = 97
^
49 38 65 97 76 13 27 49 max = 97
^
49 38 65 97 76 13 27 49 max = 97
^
49 38 65 97 76 13 27 49 max = 97
^
max = 97
三、程序代码
#include <iostream>using namespace std
//返回数组中元素的最大值
//arr:数组
//n:数组大小
//返回n个数组元素的最大值
int max(int arr[], int n)
{
int maxValue = arr[0]
for(int i=1 i<n i++)
{
if(arr[i] > maxValue)
{
maxValue = arr[i]
}
}
return maxValue
}
int main()
{
int arr[] = {49, 38, 65, 97, 76, 13, 27, 49}
int n = 8
cout<<"最大值:"<<max(arr, n)<<endl
return 0
}
四、运行测试
用于查找数组中最高值(其实就是最大值,但是为对应源代码中的 highest,故仍称为最高值)和最低值(其实就是最小值,但是为对应源代码中的 lowest,故仍称为最低值)的算法非常相似。首先,来看一下在数组中寻找最高值的代码。假设在程序中出现了以下语句。const int SIZE = 10
int numbers[SIZE] = {15, 6, 3, 11, 22, 4, 0, 1, 9, 12}
查找数组中最高值的代码如下所示:
int count
int highest
highest = numbers[0]
for (count = 1count <SIZEcount++)
{
if (numbers[count] >highest)
highest = numbers[count]
}
首先,该语句将第一个数组元素中的值复制到名为 highest 的变量中。然后,循环将从下标 1 开始的所有其余数组元素与存储在 highest 中的值进行比较。每次当它发现数组元素中的值大于 highest 中的值时,都会将其复制到 highest。循环完成后,highest 将包含数组中最的值。
以下代码将找到数组中的最低值。对比之后可以发现,它与查找最高值的代码几乎相同。
int count
int lowest
lowest = numbers[0]
for (count = 1count <SIZE:count++)
{
if (numbers[count] <lowest)
lowest = numbers[count]
}
当循环完成后,lowest 将包含数组中的最低值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)