我正在尝试制作一个分析数据的程序,但每次都会改变数据量。以下是输出示例:
Please enter the sample size: 3
Enter numbers for Trial 0
Enter sample #0:50
Enter sample #1:49
Enter sample #2:51
Enter numbers for Trial 1
Enter sample #0:30
Enter sample #1:31
Enter sample #2:32
Enter numbers for Trial 2
Enter sample #0:25
Enter sample #1:26
Enter sample #2:27
Enter numbers for Trial 3
Enter sample #0:15
Enter sample #1:16
Enter sample #2:17
Sample # Trial 1 Trial 2 Trial 3 Trial 4
0 50 30 25 15
1 49 31 26 16
2 51 32 27 17
-------------------------------------------------------
Average: 50 31 26 16
Min Average: 16
Max Average: 50
The trials do NOT concur!
这是我目前的代码:
import java.util.Scanner;
public class DataAnalyze {
public static void main(String[] args) {
int sample = 0;
int avg;
int t1 = 0;
int t2;
int t3;
int t4;
int val;
int max;
int min;
Scanner input = new Scanner(System. in );
System.out.println("Please enter the sample size: ");
sample = input.nextInt();
System.out.println("Enter the numbers for Trial 0");
for (int i = 0; i < sample; i++) {
System.out.println("Enter sample # " + i + " : ");
t1 = input.nextInt();
}
System.out.println("\tSample #\tTrial 1\tTrial 2\tTrial 3\tTrial 4");
System.out.println("\t" + (sample - 1) + "\t" + t1);
}
}
我想我要问的是如何使for循环第一次收集t1的输入,第二次收集t2,第三次收集t3等等。基本上,如何更改输入每次循环迭代时都会分配一个值?我认为某种数组是最好的方法,但我不熟悉java,所以如果你能给我一个很棒的例子,谢谢。
答案 0 :(得分:0)
我认为你的意思是说当你说
时生成唯一的随机数每次迭代时,让for循环打印出一个不同的变量
这可以通过首先在列表中添加范围然后使用Collections类的shuffle()方法来获得唯一编号来实现。
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i=1; i<11; i++) {
list.add(new Integer(i));
}
Collections.shuffle(list);
for (int i=0; i<3; i++) {
System.out.println(list.get(i));
}
答案 1 :(得分:0)
在Java中,您可以在List类中存储任意数量的对象。通用的ArrayList类可能适合您的需要。您在阅读时会将数字附加到列表中。
您可以使用while循环替换for循环,并通过以下方式检查输入结束:以字符串形式读入然后首先检查空字符串(用户只需点击返回),如果没有将字符串转换为int。
我不知道如何让for循环打印出不同的变量 每次迭代
我不明白你的意思。你的意思是在第一次通过时打印t1,然后是t2,然后是t3,依此类推?没有简单的方法可以做到这一点,你需要例如将这些t变量存储在数组中,并使用根据循环变量值计算的索引来执行此操作,例如:
int t[4] ;
int i = 0 ;
while( .. )
{
System.out.println( "var = " + t[ i % t.length ] ) ;
i++ ;
};