从数字中获取最大值和最小值
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);
}
我需要根据数字打印最大和最小数字。 问题是,当我将 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);
}