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

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

我的代码:

#define _CRT_SECURE_NO_WARNINGS #include int main() { int x, mx = 0, mn = 0; int i = 1, n; scanf("%d", &n); for (i = 1; i  mx) { mx = x; }; if (x < mn) { mn = x; }; }; printf("minimum is: %d", mn); printf("maximum is: %d", mx); system("pause"); return 0; } 

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

system("pause");除外system("pause"); C不需要。)

从数字中打印最大和最小数字。

mn,mx初始化为相反的极值,而不是将两者都初始化为0.无需在循环中设置特殊情况。 好的代码努力降低循环的复杂性。

当没有最小/最大值(空集)时,这可以轻松且正确地检测角落情况。

 #include  // 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); }