我有一个项目,我必须以 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();

}

}

我的项目是:

  1. 获取 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();
}

希望对您有所帮助!