#include <stdio.h>
int arrayMax (int num[],int length);
int arrayMax2 (int nums[],int length);
int main()
{
#pragma mark 設(shè)計(jì)一個(gè)函數(shù) int arrayMax(int a[],int count) 找出數(shù)組元素的最大值
int num[5] = {-99,-111,-77,-55,-33};
int length = sizeof(num) / sizeof(num[0]);
int max = arrayMax2(num,length);
printf("max = %i\n",max);
return 0;
}
// 方法2
int arrayMax2 (int nums[],int length)
{
// 1.定義變量,保存數(shù)組中最大值的角標(biāo)(索引)
int max = 0;
// 2.遍歷數(shù)組
for (int i = 1 ; i < length; i++) {
// 3.取出數(shù)組中對(duì)應(yīng)角標(biāo)的元素值進(jìn)行比較
if (nums[max] < nums[i]) {
// 如果當(dāng)前遍歷到的角標(biāo)對(duì)應(yīng)的元素的值大于max這個(gè)角標(biāo)對(duì)應(yīng)元素的值
// 那么就將當(dāng)前的角標(biāo)最為最大值的角標(biāo)
max = i;
}
}
return nums[max];
}
// 方法1
int arrayMax (int nums[],int length)
{
// 1.定義一個(gè)變量,假設(shè)為最大值
// int max = 0; // 注意:不能假設(shè)一個(gè)不是數(shù)組中的值為最大值
int max = nums[0];
// 2.遍歷數(shù)組
for (int i = 1; i < length; i++)// 性能有問(wèn)題 第0個(gè)數(shù)不需要和第0個(gè)數(shù)作為比較了 所以 int i = 0 可以改成 int i = 1
{
// 3.依次取出數(shù)組中每一個(gè)元素的值,和假設(shè)的最大值比較
// 如果數(shù)組的元素大于假設(shè)最大值,就讓當(dāng)前元素的值最為最大值
if (max < nums[i]) {
max = nums[i];
}
}
return max;
}