【问题标题】:Need help in histogram displaying the stars在显示星星的直方图中需要帮助
【发布时间】:2023-03-31 14:32:01
【问题描述】:

我需要帮助来显示每个 cat1 到 cat4 的星星。我遇到的问题是,当您运行代码时,星星显示在 cat1 到 cat4 下方。我希望星星显示在每只猫的侧面。

我的编码输出是:

读入一个标记 21

输入下一个学生分数 2

输入下一个学生分数 30

输入下一个学生分数 31

输入下一个学生分数 40

输入下一个学生分数 41

输入下一个学生分数 70

输入下一个学生分数 71

输入下一个学生分数 109 = 当人输入超过 100 的数字时,while 循环结束。

输入的分数总数 8

0-29:2

*

*

30-39: 2

*

*

40-69:2

*

*

70-100:2

*

*

我期望的编码看起来像什么: 0-29: * *

30-39: * *

40-69: * *

70-100: * *

    int cat1 = 0;
    int cat2 = 0;
    int cat3 = 0;
    int cat4 = 0;
    int mark;
    int counter = 0;

    Scanner input = new Scanner(System.in);
    System.out.println("Read in a mark");
    mark = input.nextInt();

    while (mark <= 100 && mark >= 0) {
        counter++;
        if (mark >= 0 && mark <= 29) {
            cat1++;
        }
        if (mark >= 30 && mark <= 39) {
            cat2++;
        }
        if (mark >= 40 && mark <= 69) {
            cat3++;
        }
        if (mark >= 70 && mark <= 100) {
            cat4++;
        }

        System.out.println("Enter the next student mark");
        mark = input.nextInt();
    }
    System.out.println("Total number of marks entered " + counter);

    System.out.print("");
    System.out.println("0-29: " + cat1);
    for (int i = 0; i < cat1; i++) {
        System.out.println("*");
    }
    System.out.print("");
    System.out.println("30-39: " + cat2);
    for (int i = 0; i < cat2; i++) {
        System.out.println("*");
    }
    System.out.print("");
    System.out.println("40-69: " + cat3);
    for (int i = 0; i < cat3; i++) {
        System.out.println("*");
    }
    System.out.print("");
    System.out.println("70-100: " + cat4);
    for (int i = 0; i < cat4; i++) {
        System.out.println("*");
    }

【问题讨论】:

  • 我的意思是我希望星星显示在每个 cat1 到 cat4 的右侧,但似乎无法弄清楚。
  • 你能提供你的输出和预期输出吗?
  • 我已经对我提出的问题进行了一些编辑

标签: java histogram netbeans-8


【解决方案1】:

您应该将System.out.println 更改为System.out.print 并在每个循环后的末尾添加System.out.println();

System.out.print("");
System.out.print("0-29: " + cat1);
for (int i = 0; i < cat1; i++) {
    System.out.print("*");
}
System.out.println();
System.out.print("");
System.out.print("30-39: " + cat2);
for (int i = 0; i < cat2; i++) {
    System.out.print("*");
}
System.out.println();
System.out.print("");
System.out.print("40-69: " + cat3);
for (int i = 0; i < cat3; i++) {
    System.out.print("*");
}
System.out.println();
System.out.print("");
System.out.print("70-100: " + cat4);
for (int i = 0; i < cat4; i++) {
    System.out.print("*");
}
System.out.println();

您可能还应该在需要的地方添加一些空格

【讨论】:

  • 哇,这么简单的东西我都没有注意到
【解决方案2】:

像这样试试..

        String star = "";
        for (int i = 0; i < cat1; i++) {
            star = star +"*";
        }
        System.out.println("0-29: " + star);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    相关资源
    最近更新 更多