使用Java的平均计算器程序

时间:2018-09-30 16:20:47

标签: java arrays

import java.util.Scanner;

public class AverageMark{

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System.in);
        int mark[] = { 0, 0, 0, 0 };
            System.out.printf("Enter integer mark %s between 0 and 100: ", i + 1);

        }
        System.out.println("Thanks for entering your marks.\n");
        double average = (mark[0] + mark[1] + mark[2] + mark[3]) * 0.25;
        String grade;
        if (average >= 90) {
            grade = "A+";
        } else if (average >= 80) {
            grade = "A";
        } else if (average >= 70) {
            grade = "B";
        } else if (average >= 60) {
            grade = "C";
        } else if (average >= 50) {
            grade = "D";
        } else
            grade = "F";
        System.out.printf("Your average is: %.2f\n", average);
        System.out.printf("Your average of %.2f has a letter grade of %s", average, grade);
    }

}

///对不起,您先前的编辑,我是这个网站的新手。这是我编写的代码,但我不确定为什么它无法运行。似乎可能缺少某些东西,但是我 还不清楚。请帮忙谢谢你

3 个答案:

答案 0 :(得分:1)

在下面的程序中,我让用户可以灵活地输入主题数。扫描仪允许用户读取各种类型的值。 System.in:一个InputStream,通常连接到控制台程序的键盘输入。

    import java.util.Scanner;

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

    int i;

    System.out.println("Enter number of subjects");

    Scanner sc=new Scanner(System.in);
 //Here we are taking number of subjects from user
    int n=sc.nextInt();


    //Set array to no of subject
    int[] a=new int[n];

    double avg=0;


    System.out.println("Enter marks");
    //  Taking marks from user for n no of subjects
    for( i=0;i<n;i++)
    {
       a[i]=sc.nextInt();
    }
 // Calculating total marks of subjects in avg variable
    for( i=0;i<n;i++)
    {
      avg=avg+a[i];
      System.out.println("Total marks of subjects : => "+avg);
    }

    //Calculating average % using total/no of subject formula

    for(i=0;i<n-1;i++)
    {
      System.out.print(a[i]+",");
    }
    System.out.println(a[i]+") ="+avg/n);
  }
}

答案 1 :(得分:1)

您的代码几乎在那里,只是缺少存储用户输入的值:

  1. 将标记存储在数组中:

    System.out.println("Enter the marks : ");   
    for (int i =0; i < mark.length; i ++) {     
        System.out.printf("Enter integer mark %s between 0 and 100: ", i + 1);
        // assign each input to an index of the array
        mark[i] = input.nextInt();
    }
    

我还建议您像下面那样声明数组,而不是仅将所有索引初始化为0

int mark[] = new int[4];

其余代码按原样工作。

答案 2 :(得分:1)

代码存在一些问题。

您看到的第一个错误是:

  

AverageMark.java:13:错误:预期为           System.out.println(“感谢您输入标记。\ n”);

这是因为您有一个不需要的花括号。 Java编译器难以解释程序的结构。删除第11行。您需要具有匹配的花括号以形成语法正确的程序。您是说要包含for循环吗?

更正并重新编译后,您会发现:

  

AverageMark.java:10:错误:找不到符号
          System.out.printf(“输入介于0到100之间的整数标记%s:”,i +1);
    符号:变量i位置:类AverageMark 1错误

在第10行引用int i=0之前添加i的定义。

然后应编译,您可以开始调试。

相关问题