第07天C语言(06):数组-练习2

一、概念
二、代码
#include <stdio.h>
int arrayMax(int nums[], int length);
int arrayMax2(int nums[], int length);
int main()
{
    // 设计一个函数 int arrayMax(int a[], int count) 找出数组元素的最大值
    int nums[3] = {-22,-33,-55};
    int length = sizeof(nums) / sizeof(nums[0]);
//    int max = arrayMax(nums,length);
    int max = arrayMax2(nums,length);
    printf("max = %i\n",max);
    
    return 0;
}

#pragma 方式2
int arrayMax2(int nums[], int length)
{
    // 1.定义一个变量,保存数组中最大值的角标(索引)
    int max = 0;
    
    // 遍历数组
    for (int i = 1; i < length; i++) {
        // 3.取出数组中对应的角标 的元素值 进行比较
        if (nums[max] < nums[i]) {
            // 如果 当前遍历到的角标 对应的元素的值 大于max 这个角标对应元素的值
            // 那么就将 当前的角标作为 最大值的角标
            max = i;
        }
    }
    return nums[max];

}


#pragma 方式1
int arrayMax(int nums[], int length)
{
    // 1.定义一个变量,假设为最大值
//    int max = 0; // 注意, 不能假设一个不是数组中的值为最大值
    int max = nums[0];
    // 2.遍历数组
    // 没有必要和第一次对比
//    for (int i = 0 ; i < length; i++) {
    for (int i = 1 ; i < length; i++) {
        // 3.依次取出数组中每一个元素的值,和假设的最大值 进行比较
        // 如果数组的元素 大于 假设的最大值, 就让当前元素 作为最大值
        if (max < nums[i]) {
            max = nums[i];
        }
    }
    return max;
}

推荐阅读更多精彩内容