【发布时间】:2021-09-26 17:50:57
【问题描述】:
我是编程新手,请多多包涵。我需要使用 while 循环、一个字符串数组和三个双精度数组创建一个程序。我的输出应该是这样的: java平均4
乔 3 5 2
蒂姆 4 1 5
1 月 6 日 3 月 2 日
杰克 8 3 5
吉尔 5 4 9
迈克 6 7 3
Ctrl-Z
乔 3 5 2 3.33
蒂姆 4 1 5 3.33
简 6 3 2 3.67
杰克 8 3 5 5.33
我基本上需要一个程序来读取带有名称和三个数字的输入。输出应该打印我输入的名称和数字,然后是每组数字的平均值。我可以创建一个类文件,但是按Ctrl+z后,程序没有输出任何东西。
public class Average {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
String [] names = new String [n];
double [] a = new double [n];
double [] b = new double [n];
double [] c = new double [n];
int counter = 0;
while (counter < n) {
String [] run = StdIn.readAllStrings();
double [] value = StdIn.readAllDoubles();
counter++;
}
int i = 0;
double sum = 0.0;
while (!StdIn.isEmpty()) {
double value = StdIn.readDouble();
sum += value;
n++;
double average = sum / n;
StdOut.print(names);
StdOut.print(value);
StdOut.printf("%.2f", average);
}
}
}
【问题讨论】:
-
你能提供一些关于 StdOut / StdIn 类的信息吗?
-
在普通的 java 语法中,我们会使用 System.in 输入流和 System.out 输出流
-
StdOut/StdIn 的使用方式与 Scanner 用于读取用户输入的方式相同。如果您查看我的帖子,您可以看到我的输入在 Ctrl-z 之前的位置。然后计算机应该会自动输出 Ctrl-z 之后的内容。
-
我不知道这是否是问题所在,但我想到的是数字可以被读取为字符串,因此
StdIn.readAllStrings()可能也在读取所有数字?跨度> -
所以不是读取我输入的名字,而是读取我输入的数字?