我必须制作一个程序,告诉你5个数字中最大和最小的数字,并且我在输出时保持最小= 0和最大= 0。我还没有添加评论或类似的东西,我已经尝试了其他如果它正在工作(惊讶我有其他工作)。有人可以帮我这个。我不应该对此有所帮助,但我无法弄清楚这一点。
public class int_big_small {
public static void main(String args[]){
int num1=3, num2=9, num3=5, num4 = 3, num5 = 7;
int largest = 0, smallest = 0;
if(num1 > num2){
num1 = largest;
num2 = smallest;
}else{
num2 = largest;
num1 = smallest;
}
if(num3>largest){
num3 = largest;
}
if(num3<smallest)
num3 = smallest;
if(num4>largest){
num4 = largest;
}
if(num4<smallest)
num4 = smallest;
if(num5>largest){
num5 = largest;
}
if(num5<smallest)
num5 = smallest;
System.out.println("the smallest number is " + smallest + " and the largest is " + largest);
}
}
答案 0 :(得分:2)
您的作业都是相反的顺序 - 它们应该是smallest = whatever
,而不是whatever = smallest
这也迫切需要进行循环。
int[] nums = new int[] {num1, num2, num3, num4, num5};
int smallest = nums[0];
int largest = nums[0];
for(int i = 1; i < nums.length; i++) {
if(nums[i] < smallest) {
smallest = nums[i];
}
if(nums[i] > largest) {
largest = nums[i];
}
}
将smallest
和largest
初始化为您的数字列表中的有效整数 - 将其初始化为0
将导致smallest
等于0
时你结束了。 (唯一不会导致问题的默认值是smallest = Integer.MAX_VALUE; largest = Integer.MIN_VALUE;
)
答案 1 :(得分:1)
public int min(int a, int b) {
if(a > b) return b;
return a;
}
public int max(int a, int b) {
if(a > b) return a;
return b;
}
int num1=3, num2=9, num3=5, num4 = 3, num5 = 7;
int largest = num1, smallest = num1;
smallest = min(min( min(num1, num2) , min(num3, num4)), num5);
largest = max(max( max(num1, num2) , max(num3, num4)), num5);
答案 2 :(得分:1)
如果您正在学习 Java,请使用带有数组和循环的解决方案。如果你使用 Java,可以用3行完成:
List<Integer> list = Arrays.asList(num1, num2, num3, num4, num5);
int smallest = Collections.min(list);
int largest = Collections.max(list);