c语言编程笔录

首页 >   > 笔记大全

笔记大全

C语言如何输入十个数输出最大值

更新时间:2024-01-16

问题描述

在C语言中输入十个数,并输出这些数中的最大值。

解决方案1

我们可以通过比较输入的十个数,找出最大的数。

#include <stdio.h>

int main() {
    int nums[10];
    int max;

    for(int i = 0; i < 10; i++) {
        scanf("%d", &nums[i]);
    }

    max = nums[0];

    for(int i = 1; i < 10; i++) {
        if(nums[i] > max) {
            max = nums[i];
        }
    }

    printf("最大值为: %d\n", max);

    return 0;
}

解决方案2

我们也可以通过对数字进行排序来找到最大值。

#include <stdio.h>

int main() {
    int nums[10];

    for(int i = 0; i < 10; i++) {
        scanf("%d", &nums[i]);
    }

    // 选择排序
    for(int i = 0; i < 9; i++) {
        int min_index = i;

        for(int j = i + 1; j < 10; j++) {
            if(nums[j] < nums[min_index]) {
                min_index = j;
            }
        }

        int temp = nums[i];
        nums[i] = nums[min_index];
        nums[min_index] = temp;
    }

    printf("最大值为: %d\n", nums[9]);

    return 0;
}

解决方案3

我们还可以使用递归的方式来找到最大值。

#include <stdio.h>

int findMax(int nums[], int start, int end) {
    if(start == end) {
        return nums[start];
    } else {
        int middle = (start + end) / 2;
        int max1, max2;

        max1 = findMax(nums, start, middle);
        max2 = findMax(nums, middle + 1, end);

        if(max1 > max2) {
            return max1;
        } else {
            return max2;
        }
    }
}

int main() {
    int nums[10];

    for(int i = 0; i < 10; i++) {
        scanf("%d", &nums[i]);
    }

    int max = findMax(nums, 0, 9);

    printf("最大值为: %d\n", max);

    return 0;
}

解决方案4

最后,我们还可以使用指针来找到最大值。

#include <stdio.h>

void findMax(int *nums, int num_count, int *max) {
    *max = *(nums++);

    for(int i = 1; i < num_count; i++) {
        if(*nums > *max) {
            *max = *nums;
        }

        nums++;
    }
}

int main() {
    int nums[10];
    int max;

    for(int i = 0; i < 10; i++) {
        scanf("%d", &nums[i]);
    }

    findMax(nums, 10, &max);

    printf("最大值为: %d\n", max);

    return 0;
}

代码示例解释

以上四种解决方案都可以找到输入的十个数中的最大值。第一种方法是通过循环遍历找到最大值。第二种方法是选择排序,在排序后,最大的数将位于数组的最后一个位置。第三种方法是递归查找,将数组分为两个部分,然后在其中找到每个部分的最大值,最后比较两个最大值得到整个数组的最大值。第四种方法是使用指针来遍历数组,同时记录最大值。

上述代码在运行时,需要输入十个数。在输入这些数之后,每个程序输出的结果均为输入数字中的最大值。