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);
}
}
///对不起,您先前的编辑,我是这个网站的新手。这是我编写的代码,但我不确定为什么它无法运行。似乎可能缺少某些东西,但是我 还不清楚。请帮忙谢谢你
答案 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)
您的代码几乎在那里,只是缺少存储用户输入的值:
将标记存储在数组中:
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
的定义。
然后应编译,您可以开始调试。