Java - 使用for循环来从键盘读入的平均成绩集

时间:2014-09-12 22:56:28

标签: java for-loop

这里的第一次海报。我已经意识到在家庭作业上寻求帮助时所带来的负面耻辱,但我相信这是一个例外,因为这是一个介绍课程,教授特别指出使用谷歌找到Java中for循环的例子(其中我们还没有在课堂上报道)。我绝对没有Java经验,非常感谢任何反馈:

程序会询问用户有多少成绩。

程序向用户询问每个等级(需要循环,并且应该在循环内对等级求和)。

获取所有等级的总和,计算平均值并存储在浮动变量等级中。

将等级值打印到控制台并将数字附加到字符串,例如"Grade Average is: " + grade

示例应为:

Enter number of grades: 2 Enter grade: 90 Enter grade: 81 Grade Average is: 85.5

到目前为止我的代码(这里不多):

// This program computes the letter grades for number of grades given by user

import java.util.*;

public class GradeAverage
{
    public static void main(String[] args)
    {
        int count;
        float sum = 0;
        float grade;
        Scanner scan = new Scanner(System.in);
    }
}

编辑:

// This program computes the letter grades for number of grades given by user

import java.util.*;

public class GradeAverage
{
    public static void main(String[] args)
    {
        int count;
        float sum = 0;
        float grade;
        Scanner scan = new Scanner(System.in);

        System.out.print("Enter number of grades: ");
        count = scan.nextInt();

        for (int i = 0; i < count; ++i)
            System.out.print("Enter grade " + (i + 1) + ": ");
            grade = scan.nextFloat();
            sum += grade;

        System.out.println("The average of the grades is: " + sum/count);
    }
} 

这就是我现在所拥有的,但测试显示的结果不正确(例如):

Enter number of grades: 2 Enter grade 1: Enter grade 2: 50 50 The average of the grades is: 25.0

每个等级都需要在不同的行上输入,因此平均值会因此而出现偏差。

4 个答案:

答案 0 :(得分:0)

将大任务分解为较小的任务,比如@ user2864740说,在纸上写算法(不是代码)然后开始将其转换为代码

你到达了你创建一个扫描仪读取输入的部分,现在读取输入并......找出其余部分。

要了解如何阅读用户输入阅读this

要了解如何使用字符串制作整数,请扫描阅读this

其余的基本数学真的,读你的教科书,祝你好运;)

编辑:至少提出一些算法然后我们可以帮助代码

答案 1 :(得分:0)

我不会为你解决作业,但我会帮助你:

如何使用for循环:

for (int i = #startValue#; #booleanCondition#; #runTheFollowingCodeAtEachIteration#)
{
    //code
}

例如:

for(int i = 0; i<10; i++)
{
    System.out.println(i);
}

将显示:

0  
1  
2  
3  
4  
5  
6  
7  
8  
9  

你的作业:

程序会询问有多少成绩:
 扫描用户输入的名为NumberOfGrades的值(在代码中称为count)。

程序询问用户每个年级+总和成绩:
使用for循环,起始值为i,NumberOfGrades的上限。扫描每个等级并将其添加到名为GradeSum的值,该值在进入for循环之前最初应为0。

将值打印到控制台......:
将GradeSum除以NumberofGrades,并显示它想要显示的方式。

提示:
- 使用System.out.print(&#34; \ n输入等级:&#34;);在每次扫描前的for循环中。

答案 2 :(得分:0)

为了避免直接回答你的家庭作业问题(两者都无法帮助你解决问题而且可能不允许),让我们从“什么是for循环?”开始。

for循环是一个奇特的循环,可以为您做以下事情:

  1. 第一次执行循环语句时,将一个(或多个)变量初始化为初始值
  2. 每次迭代,检查一个布尔条件以确定它是否应该再次循环。如果表达式的计算结果为true,则再次迭代。否则,打破循环并继续循环后的代码。
  3. 每次循环完成迭代时运行的语句。
  4. 例如,以下循环将打印数字1 .. 10。

    for(int i = 1; i <= 10; i++){
        System.out.println(i);
    }
    
    • 循环语句int i = 1的第一部分是初始化块。当第一次执行for循环时,i被初始化为int,其值为1
    • 循环语句i <= 10的第二部分是检查以确定是否需要另一次迭代的布尔条件。在这种情况下,如果i <= 10小于或等于i,则10评估为true;如果i点击11(或任何更大的数字),则{false}评估为false
    • 最后,第三部分i++是for循环完成迭代时运行的语句。 i++1添加到i的当前值,因此i每次迭代的值会增加1

答案 3 :(得分:0)

import java.util.Scanner;     
public static void main(String[] args) {
            int count = 0;
            float sum = 0;
            float grade = 0;
            Scanner scan = new Scanner(System.in);

            System.out.print("Enter number of grades: ");
            count = scan.nextInt();

            for (int i = 0; i < count; i++) {
                System.out.print("Enter grade no " + (i + 1) + " : ");
                grade = scan.nextFloat();
                sum += grade;
            }
            System.out.println("Sum = " + sum);
            System.out.println("Average = " + sum / (float) count);
        }