从数字中获取最大值和最小值

Get maximum and minimum from numbers

我需要根据数字打印最大和最小数字。 问题是,当我将 mn 和 mx 设置为 0 时,它就无法工作,因为当用户写入数字 1 2 3 4 5 时,最小值是 0 而不是 1,这就是问题所在。

我的代码:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main() {

    int x, mx = 0, mn = 0;
    int i = 1, n;

    scanf("%d", &n);
    for (i = 1; i <= n; i++) {
        printf("Your number %d:", i);
        scanf("%d", &x);
            if (x > mx) {
                mx = x;
            };
            if (x < mn) {
            mn = x;
            };
    };

    printf("minimum is: %d", mn);
    printf("maximum is: %d", mx);
    system("pause");
    return 0;
}

将两者都设置为输入的第一个值。然后按原样使用您当前的代码。

(除了 system("pause");。C 不需要那个。)

to print maximum and minimum number from numbers.

mn,mx 初始化为相反的极端,而不是都为 0。无需在循环中考虑特殊情况。好的代码努力降低循环的复杂性。

当不存在 minimum/maximum(空集)时,这可以轻松正确地检测到极端情况。

#include <limits.h>

// int mx = 0, mn = 0;
int mn = INT_MAX;
int mx = INT_MIN;

...  code as before

if (mn > mx) {
  puts("No input encountered");
} else {
  printf("minimum is: %d\n", mn);
  printf("maximum is: %d\n", mx);
}