C语言 输入n个整数,求这个n个整数中的最大数,最小数

在 C 语言中,输入 n 个整数并找出其中的最大值和最小值是一个常见的编程任务。下面是详细的步骤和代码示例,帮助你完成这个任务:

步骤

  1. 输入整数个数 n:首先从用户那里读取要处理的整数的数量。
  2. 动态分配内存:根据输入的 n 创建一个适当大小的数组来存储这些整数。
  3. 输入 n 个整数:将这些整数存入数组中。
  4. 计算最大值和最小值:遍历数组,找到最大值和最小值。
  5. 输出结果:打印最大值和最小值。

代码示例

以下是实现上述步骤的 C 语言代码:

c
#include <stdio.h> #include <limits.h> // 包含 INT_MAX 和 INT_MIN int main() { int n; // 输入整数个数 printf("Enter the number of integers: "); scanf("%d", &n); // 检查输入的有效性 if (n <= 0) { printf("The number of integers should be greater than 0.\n"); return 1; } // 动态分配内存来存储 n 个整数 int *numbers = (int *)malloc(n * sizeof(int)); if (numbers == NULL) { printf("Memory allocation failed.\n"); return 1; } // 输入 n 个整数 printf("Enter %d integers:\n", n); for (int i = 0; i < n; i++) { scanf("%d", &numbers[i]); } // 初始化最大值和最小值 int max = INT_MIN; int min = INT_MAX; // 计算最大值和最小值 for (int i = 0; i < n; i++) { if (numbers[i] > max) { max = numbers[i]; } if (numbers[i] < min) { min = numbers[i]; } } // 输出最大值和最小值 printf("The maximum value is: %d\n", max); printf("The minimum value is: %d\n", min); // 释放分配的内存 free(numbers); return 0; }

详细说明

  1. 输入整数个数

    c
    printf("Enter the number of integers: "); scanf("%d", &n);

    使用 scanf 函数从用户输入中读取整数 n,代表需要处理的整数数量。

  2. 动态分配内存

    c
    int *numbers = (int *)malloc(n * sizeof(int)); if (numbers == NULL) { printf("Memory allocation failed.\n"); return 1; }

    使用 malloc 动态分配一个能够存储 n 个整数的数组,并检查内存分配是否成功。如果分配失败,程序将输出错误信息并退出。

  3. 输入 n 个整数

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

    使用循环读取 n 个整数并存储到数组 numbers 中。

  4. 计算最大值和最小值

    c
    int max = INT_MIN; int min = INT_MAX; for (int i = 0; i < n; i++) { if (numbers[i] > max) { max = numbers[i]; } if (numbers[i] < min) { min = numbers[i]; } }

    使用初始化为 INT_MININT_MAX 的变量 maxmin 来存储最大值和最小值。在遍历数组时,更新这两个变量以找到最终的最大值和最小值。

  5. 输出结果

    c
    printf("The maximum value is: %d\n", max); printf("The minimum value is: %d\n", min);

    使用 printf 函数打印最大值和最小值。

  6. 释放内存

    c
    free(numbers);

    使用 free 函数释放之前分配的内存,以避免内存泄漏。

总结

以上代码示例展示了如何在 C 语言中输入 n 个整数,并计算这些整数中的最大值和最小值。关键步骤包括动态分配内存、读取用户输入、遍历数组计算最大和最小值,并最终释放分配的内存。