import java.util.Scanner;
public class Sales
{
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
String[] name = new String[5];
double[] sales = new double[5];
for (int i=0; i<5; i++) {
System.out.println ("What is the name of the person?");
name[i] = scan.nextLine();
System.out.println ("How much did he/she sell?");
sales[i] = scan.nextDouble();
}
for (int j=0; j<5; j++) {
System.out.println (name[j] + " sold " + sales[j]);
}
int sum = 0;
for (double k : sales){
sum+=k;
}
double avg = sum / 5;
System.out.println ("The average sales is: " + avg);
for (int i = 0; i < 5; i++) {
if (sales[i] >= avg){
System.out.println (name[i] + " sold more than the average sales.");
}
}
}
}
(这段代码只是程序的一部分..对不起,如果它有点混乱[我初学者])
这是问题......
它输出如下:
这个人叫什么名字?
帕特里克
他/她卖了多少?
8000
该人的姓名是什么?
他/她卖多少钱?
粗体的行是问题。我想输入一个不同的名字和金额,但它同时要求我两次。任何帮助将不胜感激。谢谢。
答案 0 :(得分:4)
在nextDouble
之后,您必须致电scan.NextLine()
以摆脱输出中留下的行尾字符。
scan.nextDouble
方法只读取数字,没有别的。并且因为用户通过按Enter键“确认”他的输入,他还将在那里发送一个行尾字符。然后for循环将此行尾字符作为第一个问题的输入。因此 - 在读取双精度后,只需调用一个空的scan.NextLine()
,你就可以了:-)。