Java程序:查找数组中3个数字的最小数和最大数
下面的代码适用于最大值,但适用于它显示的最小值:对于我输入的任何3个值,最小的数字都是0。非常感谢您的帮助Java程序:查找数组中3个数字的最小数和最大数,java,arrays,loops,Java,Arrays,Loops,下面的代码适用于最大值,但适用于它显示的最小值:对于我输入的任何3个值,最小的数字都是0。非常感谢您的帮助 import java.util.Scanner; class MyClass{ public static void main(String[] args) { // declare and create array object // declare smallest and largest int variable
import java.util.Scanner;
class MyClass{
public static void main(String[] args) {
// declare and create array object
// declare smallest and largest int variables
int[] numbers;
numbers = new int[3];
int smallest = numbers[0], largest = numbers[0];
// create Scanner object
Scanner input = new Scanner(System.in);
// prompt user
System.out.print("Please enter 3 numbers: \n");
// use for loop to obtain user input
for (int counter = 0; counter < numbers.length; counter++) {
numbers[counter] = input.nextInt();
} // end obtaining input
// for loop to find largest and smallest values
for (int i=0 ;i< numbers.length; i++) {
if (numbers[i] < smallest) {
smallest = numbers[i];
} // end finding smallest
if (numbers[i] > largest) {
largest = numbers[i];
} // end finding largest number
}
System.out.println("largest number is "+largest);
System.out.println("smallest number is "+smallest);
}
}
import java.util.Scanner;
类MyClass{
公共静态void main(字符串[]args){
//声明并创建数组对象
//声明最小和最大的int变量
int[]数字;
数字=新整数[3];
int最小=数字[0],最大=数字[0];
//创建扫描仪对象
扫描仪输入=新扫描仪(System.in);
//提示用户
系统输出打印(“请输入3个数字:\n”);
//使用for循环获取用户输入
用于(int计数器=0;计数器最大值){
最大=数字[i];
}//结束查找最大数
}
System.out.println(“最大值为”+最大值);
System.out.println(“最小值为”+最小值);
}
}
最小值在此处始终初始化为0:int minimest=numbers[0]
。除非用户输入小于0的值,否则最小值将保持为0。改为使用Integer.MAX\u VALUE
(int minimable=Integer.MAX\u VALUE
)以确保实际选择的是最小的数字。您正在将minimate
初始化为0
,因此,如果数组中的任何数字都不小于0
,结果仍然是0
。而是将其初始化为Integer.MAX\u VALUE
,这是Integer数据类型可以具有的最高值。公共静态void getMaxMin(int a、int b、int c){
public static void getMaxMin(int a, int b, int c){
int max=a;
int min=a;
if(b>max){
max=b;
}
if(c>max){
max=c;
}
if(b<min){
min=b;
}
if(c<min){
min=c;
}
System.out.println("min="+min);
System.out.println("max="+max);
}
int max=a;
int min=a;
如果(b>最大值){
max=b;
}
如果(c>最大值){
max=c;
}
if(bimport java.util.Scanner;
类MyClass{
公共静态void main(字符串[]args){
//声明并创建数组对象
//声明最小和最大的int变量
int[]数字;
数字=新整数[3];
//创建扫描仪对象
扫描仪输入=新扫描仪(System.in);
//提示用户
系统输出打印(“请输入3个数字:\n”);
//使用for循环获取用户输入
用于(int计数器=0;计数器
在读取中的任何数字之前,您正在设置最小值
和最大值
。这意味着它们都将为零。这对于最大值来说是可以的,但对于最小值来说不是。但是我认为int minimest=numbers[0]意味着它将作为数组中的第一个元素,而不是作为值0,但我认为int minimest=numbers[0]意味着它将把它作为数组中的第一个元素,而不是作为值0@Amanda是的,但是您读取了数字[0]的值
在为其赋值之前。由于数组最初是用0填充的,因此您将得到0作为最小的
。您可以在读取输入后读取最小的
和最大的
的初始值,或者使用我的解决方案。注意:对最大元素的求值只起作用,因为您只使用了正值整数(与最小的
的问题相同)。好的,我现在知道了。谢谢!
import java.util.Scanner;
class MyClass {
public static void main(String[] args) {
// declare and create array object
// declare smallest and largest int variables
int[] numbers;
numbers = new int[3];
// create Scanner object
Scanner input = new Scanner(System.in);
// prompt user
System.out.print("Please enter 3 numbers: \n");
// use for loop to obtain user input
for (int counter = 0; counter < numbers.length; counter++) {
numbers[counter] = input.nextInt();
} // end obtaining input
//Use in built Math.min and Math.max to get smallest and largest numbers
System.out.printf("%s: %d%n", "smallest number is ", Math.min(numbers[0], Math.min(numbers[1], numbers[2])));
System.out.printf("%s: %d%n", "largest number is ", Math.max(numbers[0], Math.max(numbers[1], numbers[2])));
}
}