java - 在 Java 中打印大型列出数组

标签 java arrays for-loop count printf

问题是我不知道如何让我的输出格式如下:

"Student 1: 98.2"
"Student 2: 12.1"
"Student 3: 33.6"
"Student 4: 47.8"
"Student 5: 15.0"
"Student 6: 69.2"
"Student 7: 55.7"
"Student 8: 82.2"
....etc

我必须使用 printf 函数来获取宽度,使用 for 循环来获取随机分数。不知道如何在 printf 代码行中彼此相邻地列出这个学生编号数组。预先感谢您提供的任何提示和帮助!

************************ 下面的程序 *************************

import java.util.Scanner;

public class Assignment {
public static void main(String[] args) {

  // input Scanner
  Scanner input = new Scanner(System.in);

  // declare variables
  double[] midtermScores = new double [60];
  double avg = 0.0;
  double sum = 0.0;
  int count = 0;


  // use a for loop to print an array of 60 randomly generated midterm scores
  System.out.println("Here are the Midterm #2 scores for the class:");
  for (int i = 0; i < midtermScores.length; i++) {
     midtermScores[i] = Math.random() * 100;
     System.out.printf("Student %3.1f", midtermScores[i]);
     System.out.println();
     sum += midtermScores[i];
  }

  // find the average of the 60 midterm scores
  avg = sum / midtermScores.length;
  System.out.printf("The average scores is: %3.1f%%", avg);
  System.out.println();

  // count how many students scored above the average
  for (int i = 0; i < midtermScores.length; i++) {
     if (midtermScores[i] > avg) {
        count++;      
     }
  }
  System.out.println(count + " students scored above the average. Good job!");

}
}

**************************** 输出低于********************************

Here are the Midterm #2 scores for the class:
Student 151.2
Student 168.8
Student 191.8
Student 195.3
Student 172.9
Student 198.2
Student 141.9
Student 14.1
Student 14.6
Student 151.5
Student 144.0
Student 178.4
Student 130.1
Student 180.8
Student 171.5
Student 158.6
Student 19.4
Student 139.8
Student 15.0
Student 171.5
Student 13.3
Student 197.8
Student 152.2
Student 163.7
Student 111.8
Student 149.2
Student 166.2
Student 113.3
Student 186.0
Student 118.7
Student 16.3
Student 185.0
Student 158.0
Student 142.0
Student 120.9
Student 189.1
Student 149.5
Student 141.3
Student 149.0
Student 18.9
Student 160.7
Student 14.5
Student 130.0
Student 163.3
Student 112.5
Student 117.7
Student 183.8
Student 178.3
Student 111.6
Student 11.1
Student 173.6
Student 151.6
Student 138.1
Student 143.7
Student 190.9
Student 19.4
Student 16.0
Student 136.0
Student 110.1
Student 168.2
The average scores is: 46.2%
31 students scored above the average. Good job!

----jGRASP:操作完成。

最佳答案

如果您需要对齐输出,请尝试以下代码:

        System.out.println("Here are the Midterm #2 scores for the class:");
        for (int i = 0; i < midtermScores.length; i++) {
            midtermScores[i] = Math.random() * 100;

            // edited here. %2d to add aligned 2 digit student number
            System.out.printf("\"Student %2d: %3.1f\"", i+1, midtermScores[i]);
            System.out.println();
            sum += midtermScores[i];
        }

所以输出将是:

Here are the Midterm #2 scores for the class:
"Student  1: 85.7"
"Student  2: 5.9"
"Student  3: 74.7"
"Student  4: 0.5"
"Student  5: 90.8"
"Student  6: 76.7"
"Student  7: 64.0"
"Student  8: 34.7"
"Student  9: 54.9"
"Student 10: 1.3"
"Student 11: 19.9"
"Student 12: 96.5"
"Student 13: 53.0"
"Student 14: 99.9"
...

如果您不需要 "(引号),请从 printf 中删除 \"

关于java - 在 Java 中打印大型列出数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60614033/

相关文章:

java - Gradle(Android)-testCompile中缺少多项目依赖项

java - 我如何使用java获取当前的工作流程实例ID?

c++ - 是否可以在 C++ 的成员初始化列表中初始化数组?

coding-style - pythonic方式在没有索引变量的情况下做N次?

java - XPath 根据祖先元素查找元素

Javascript 将数组索引简化为参数

python - 将文件元素读入 3 个不同的数组

javascript - for(i in array) 和 for(var i=0;i<array.length;i++) 的区别

c/c++ for循环条件语句

java - 如果条件不满足,如何跳过映射元素