我有一个项目,我必须以 table 格式打印平均值,但是对于不同的数字,它以两种不同的方式打印 table
I have a project where I have to print the averages in a table format however for different numbers it prints the table in two different ways
import java.util.Scanner;
public class DataAnalyze {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int i, j, k, sampleSum = 0; /* the variables that will be used */
int minimum = Integer.MAX_VALUE, maximum = Integer.MIN_VALUE; /* This will be used to find min and max */
int[] trialAvg = new int [5];
System.out.println("Please enter the sample size: ");
int sampleSize = input.nextInt();
long [][] arr = new long[5][sampleSize+1]; /* using long as it will be a larger size */
for(i = 0, k = 0; i < 4; sampleSum = 0, i++, k = 0) {
System.out.println(" Enter numbers for Trial: " + (i + 1));
/* asking user to input numbers for trials with for loop */
for (j = 0; j < sampleSize; j++, k++) {
System.out.println("Enter Sample # " + (k +1) + ":");
arr[i][j]= input.nextInt();
sampleSum += arr[i][j];
/* the sampSum will equal arr[i][j] */
}
trialAvg[i] = sampleSum/sampleSize;
System.out.println("");
/* finding average */
}
for (i = 0; i < 4; i++) {
if(maximum < trialAvg[i])
maximum = trialAvg[i];
/* testing to find min and max */
if(minimum > trialAvg[i])
minimum = trialAvg[i];
}
System.out.println("\tSample # \tTrial 1 \t\tTrial 2 \t\tTrial 3 \t\tTrial 4");
/* using \t to set it in table format and save it */
for ( i = 0; sampleSize < 4; i++) {
System.out.println("\t " + (i + 1) + "\t\t " + arr[0][i] + "\t\t " + arr[1][i] + "\t\t " + arr[2][i] + "\t\t " + arr[3][i]);
}
System.out.println("-----------------------------------------------------------------------------------");
System.out.println("Average:\t\t " + trialAvg[0] + "\t\t " + trialAvg[1] + "\t\t " + trialAvg[2] + "\t\t " + trialAvg[3]);
System.out.println("Minimum Average: " + minimum);
System.out.println("Maximum Average: " + maximum);
System.out.println("");
if(maximum < (minimum*2))
System.out.println("The trials concur with each other!");
else if (maximum == minimum)
System.out.println("The trials match EXACTLY!");
else
System.out.println("The trials do NOT concur!");
input.close();
}
}
我的项目是:
获取 4 个试验中每个试验的样本量
2.reads 在每个样本的数据中并将它们存储在数组中(每次试验)
3.Print 以 table 格式输出每个样本的数据
System.out.println("\tSample #\tTrial 1\tTrial 2\tTrial 3\tTrial 4"); // Table header 行
\t 表示制表符,用于对齐列
4.Print 得出每个案例的平均值
5.Figure 通过
得出试验之间的匹配程度
使用最小值和最大值比较平均值
我认为我的代码的问题是使用长函数,但我不太确定如何解决它
当我只输入一个或两个值时它不显示样本编号,但是当我使用 5 个或更多时它会显示但我无法让它只显示一个。
这是我对你的问题的解决方案:
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter the sample size: ");
int[][] trials = new int[4][input.nextInt()];
float[] averages = new float[trials.length];
float min = Float.MAX_VALUE, max = Float.MIN_VALUE;
for (int i = 0; i < trials.length; i++) {
System.out.println(" Enter numbers for Trial: " + (i + 1));
for (int j = 0; j < trials[i].length; j++) {
System.out.println("Enter Sample # " + (j + 1) + ":");
trials[i][j] = input.nextInt();
averages[i] += trials[i][j];
}
averages[i] /= trials[0].length;
if (averages[i] < min)
min = averages[i];
if (averages[i] > max)
max = averages[i];
}
System.out.println("\tSample # \tTrial 1 \tTrial 2 \tTrial 3 \tTrial 4");
for (int i = 0; i < trials[0].length; i++) {
System.out.println("\t " + (i + 1) + "\t\t " + trials[0][i] + "\t\t " + trials[1][i] + "\t\t " + trials[2][i]
+ "\t\t " + trials[3][i]);
}
System.out.println("\t " + "average" + "\t " + averages[0] + "\t\t " + averages[1] + "\t\t " + averages[2]
+ "\t\t " + averages[3]);
if (min == max)
System.out.println("The trials match exactly");
else if (max < 2 * min)
System.out.println("The trials concur with each other");
else
System.out.println("The trials do not concur");
input.close();
}
希望对您有所帮助!
import java.util.Scanner;
public class DataAnalyze {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int i, j, k, sampleSum = 0; /* the variables that will be used */
int minimum = Integer.MAX_VALUE, maximum = Integer.MIN_VALUE; /* This will be used to find min and max */
int[] trialAvg = new int [5];
System.out.println("Please enter the sample size: ");
int sampleSize = input.nextInt();
long [][] arr = new long[5][sampleSize+1]; /* using long as it will be a larger size */
for(i = 0, k = 0; i < 4; sampleSum = 0, i++, k = 0) {
System.out.println(" Enter numbers for Trial: " + (i + 1));
/* asking user to input numbers for trials with for loop */
for (j = 0; j < sampleSize; j++, k++) {
System.out.println("Enter Sample # " + (k +1) + ":");
arr[i][j]= input.nextInt();
sampleSum += arr[i][j];
/* the sampSum will equal arr[i][j] */
}
trialAvg[i] = sampleSum/sampleSize;
System.out.println("");
/* finding average */
}
for (i = 0; i < 4; i++) {
if(maximum < trialAvg[i])
maximum = trialAvg[i];
/* testing to find min and max */
if(minimum > trialAvg[i])
minimum = trialAvg[i];
}
System.out.println("\tSample # \tTrial 1 \t\tTrial 2 \t\tTrial 3 \t\tTrial 4");
/* using \t to set it in table format and save it */
for ( i = 0; sampleSize < 4; i++) {
System.out.println("\t " + (i + 1) + "\t\t " + arr[0][i] + "\t\t " + arr[1][i] + "\t\t " + arr[2][i] + "\t\t " + arr[3][i]);
}
System.out.println("-----------------------------------------------------------------------------------");
System.out.println("Average:\t\t " + trialAvg[0] + "\t\t " + trialAvg[1] + "\t\t " + trialAvg[2] + "\t\t " + trialAvg[3]);
System.out.println("Minimum Average: " + minimum);
System.out.println("Maximum Average: " + maximum);
System.out.println("");
if(maximum < (minimum*2))
System.out.println("The trials concur with each other!");
else if (maximum == minimum)
System.out.println("The trials match EXACTLY!");
else
System.out.println("The trials do NOT concur!");
input.close();
}
}
我的项目是:
获取 4 个试验中每个试验的样本量
2.reads 在每个样本的数据中并将它们存储在数组中(每次试验)
3.Print 以 table 格式输出每个样本的数据 System.out.println("\tSample #\tTrial 1\tTrial 2\tTrial 3\tTrial 4"); // Table header 行 \t 表示制表符,用于对齐列
4.Print 得出每个案例的平均值
5.Figure 通过
得出试验之间的匹配程度使用最小值和最大值比较平均值
我认为我的代码的问题是使用长函数,但我不太确定如何解决它
当我只输入一个或两个值时它不显示样本编号,但是当我使用 5 个或更多时它会显示但我无法让它只显示一个。
这是我对你的问题的解决方案:
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter the sample size: ");
int[][] trials = new int[4][input.nextInt()];
float[] averages = new float[trials.length];
float min = Float.MAX_VALUE, max = Float.MIN_VALUE;
for (int i = 0; i < trials.length; i++) {
System.out.println(" Enter numbers for Trial: " + (i + 1));
for (int j = 0; j < trials[i].length; j++) {
System.out.println("Enter Sample # " + (j + 1) + ":");
trials[i][j] = input.nextInt();
averages[i] += trials[i][j];
}
averages[i] /= trials[0].length;
if (averages[i] < min)
min = averages[i];
if (averages[i] > max)
max = averages[i];
}
System.out.println("\tSample # \tTrial 1 \tTrial 2 \tTrial 3 \tTrial 4");
for (int i = 0; i < trials[0].length; i++) {
System.out.println("\t " + (i + 1) + "\t\t " + trials[0][i] + "\t\t " + trials[1][i] + "\t\t " + trials[2][i]
+ "\t\t " + trials[3][i]);
}
System.out.println("\t " + "average" + "\t " + averages[0] + "\t\t " + averages[1] + "\t\t " + averages[2]
+ "\t\t " + averages[3]);
if (min == max)
System.out.println("The trials match exactly");
else if (max < 2 * min)
System.out.println("The trials concur with each other");
else
System.out.println("The trials do not concur");
input.close();
}
希望对您有所帮助!