Java 从标准输入中找出三个双精度中的最大值
我们有一个java赋值,在这个赋值中,我们应该开发一个方法来扫描一行,该行应该包含三个双精度值,并返回最大值。允许抛出所有可能的异常 以下是我迄今为止所做的工作:Java 从标准输入中找出三个双精度中的最大值,java,double,java.util.scanner,Java,Double,Java.util.scanner,我们有一个java赋值,在这个赋值中,我们应该开发一个方法来扫描一行,该行应该包含三个双精度值,并返回最大值。允许抛出所有可能的异常 以下是我迄今为止所做的工作: import java.util.Scanner; public class s3dv { public static void main(String[] args) { Scanner input = new Scanner(System.in); double entered;
import java.util.Scanner;
public class s3dv {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double entered;
System.out.println("Enter 3 values to find the maximum:");
entered = input.nextDouble();
System.out.println("Maximum is - " + getMaxValue(entered));
}
//Find maximum (largest) value in array using loop
public static double getMaxValue(double[] numbers){
double maxValue = numbers[0];
for(int i = 1; i < numbers.length; i++){
if(numbers[i] > maxValue){
maxValue = numbers[i];
}
}
return maxValue;
} // End getMaxValue method
}
import java.util.Scanner;
公共类s3dv{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
双重输入;
System.out.println(“输入3个值以查找最大值:”);
entered=input.nextDouble();
System.out.println(“最大值为-”+getMaxValue(输入));
}
//使用循环查找数组中的最大值
公共静态双getMaxValue(双[]数字){
double maxValue=数字[0];
对于(inti=1;imaxValue){
最大值=数字[i];
}
}
返回最大值;
}//End getMaxValue方法
}
我在第15行出错了 将代码更改为
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
double[] entered = new double[3];
System.out.println("Enter 3 values to find the maximum:");
for(int i=0;i<3;i++){
entered[i] = input.nextDouble();
}
System.out.println("Maximum is - " + getMaxValue(entered));
}
//Find maximum (largest) value in array using loop
public static double getMaxValue(double[] numbers){
double maxValue = numbers[0];
for(int i = 1; i < numbers.length; i++){
if(numbers[i] > maxValue){
maxValue = numbers[i]; } } return maxValue;
}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
扫描仪输入=新扫描仪(System.in);
双精度[]输入=新双精度[3];
System.out.println(“输入3个值以查找最大值:”);
对于(int i=0;i maxValue){
maxValue=numbers[i];}}返回maxValue;
}
当方法需要双数组时,不能为其提供双参数。而且,您还请求用户只输入一次双精度值,您应该重复该过程。将主方法更改为:
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
double[] entered = new double[3];
int counter = 0;
while (counter != 3)
{
System.out.println("Enter a double value:");
entered[counter++] = input.nextDouble();
}
System.out.println("Maximum is - " + getMaxValue(entered));
}
您的
getMaxValue()
方法似乎没有问题,但是当从控制台输入双精度值时,使用逗号(,)而不是点(),您可能会得到InputMismatchException
。此主代码将在一行中读取3个双精度值,将它们拆分并将其传递给getMaxValue
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String userLine, lineSplitted[];
System.out.println("Enter 3 values to find the maximum:");
userLine = input.nextLine();
lineSplitted=userLine.split(" ");
double entered[]=new double[lineSplitted.length];
for (int i=0; i<lineSplitted.length; i++) entered[i]=Double.valueOf(lineSplitted[i]);
System.out.println("Maximum is - " + getMaxValue(entered));
}
公共类测试{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
字符串userLine,lineSplitted[];
System.out.println(“输入3个值以查找最大值:”);
userLine=input.nextLine();
lineSplitted=userLine.split(“”);
双精度输入[]=新双精度[lineSplitted.length];
对于(int i=0;i)您得到的错误是什么?您正在向getMaxValue传递一个double,它需要一个double数组…input.nextDouble()不返回数组。您需要修复它。是否将其标记为家庭作业?for循环不应该从0开始吗?不,因为第0个元素已存储在变量maxValue中。您是否能够识别错误的位置?@Declarer我的意思是,我应该只提示问题一次,而不让问题循环3次。我是不允许的循环问题。