在我正在做的一项任务中,我为下面的问题编写了一个程序。
“编写一个程序,读取以0到100的整数百分比给出的考试分数列表。显示总分数和每个字母等级类别的分数,如下所示:90-100是a,80-89是B,70-79是C,60-69是D,0-59是F。使用负分数作为前哨值,指示输入结束。”
例如,输入:98,87,86,85,85,78,73,72,72,70,66,63,50,-1
产出应为:
进入的年级总数为13个
A's=1
B's=4
C=5
D’s=2
F’s=1
//This is the code I wrote.//
import java.util.Scanner;
public class grade
{
public static void main(String[] args)
{
int A_grades = 0;
int B_grades = 0;
int C_grades = 0;
int D_grades = 0;
int F_grades = 0;
int count=0;
Scanner in = new Scanner(System.in);
System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
int score = in.nextInt();
while(score>0)
{
count++;
if(score>=90 && score<=100)
A_grades++;
else if(score>=80 && score<=89)
B_grades++;
else if(score>=70 && score<=79)
C_grades++;
else if(score>=60 && score<=69)
D_grades++;
else if(score>=0 && score<=59)
F_grades++;
System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
score = in.nextInt();
} //end while
System.out.println("Total number of grades :"+ count);
System.out.println("Total number of A grades :"+ A_grades);
System.out.println("Total number of B grades :"+ B_grades);
System.out.println("Total number of C grades :"+ C_grades);
System.out.println("Total number of D grades :"+ D_grades);
System.out.println("Total number of F grades :"+ F_grades);
} // end main
} // end class
下面是程序的输出。
将考试分数输入为0到100之间的整数百分比:
88 98 78 68 55 45 -1
将考试分数输入为0到100之间的整数百分比:
将考试分数输入为0到100之间的整数百分比:
将考试分数输入为0到100之间的整数百分比:
将考试分数输入为0到100之间的整数百分比:
将考试分数输入为0到100之间的整数百分比:
将考试分数输入为0到100之间的整数百分比:
年级总数:6
A级总数:1
B级总数:1
C级总人数:1
D级总人数:1
F级总人数:2
在输出中,它不断重复“将考试分数输入为0到100之间的整数百分比:”
如何编写只显示一次的代码?
谢谢你所有的答案。
这是最终的代码,它工作得非常完美。
import java.util.Scanner;
public class grade
{
public static void main(String[] args)
{
int A_grades = 0;
int B_grades = 0;
int C_grades = 0;
int D_grades = 0;
int F_grades = 0;
int count=0;
Scanner in = new Scanner(System.in);
System.out.println("Enter exam score as integer percentage in range 0 to 100");
System.out.println("And enter a negative score at the end of the list :");
int score = in.nextInt();
while(score>0)
{
count++;
if(score>=90 && score<=100)
A_grades++;
else if(score>=80 && score<=89)
B_grades++;
else if(score>=70 && score<=79)
C_grades++;
else if(score>=60 && score<=69)
D_grades++;
else if(score>=0 && score<=59)
F_grades++;
score = in.nextInt();
} //end while
System.out.println("Total number of grades :"+ count);
System.out.println("Total number of A grades :"+ A_grades);
System.out.println("Total number of B grades :"+ B_grades);
System.out.println("Total number of C grades :"+ C_grades);
System.out.println("Total number of D grades :"+ D_grades);
System.out.println("Total number of F grades :"+ F_grades);
} // end main
} // end class
它持续打印输出的原因是,您使用的“Scanner”类不会暂停输入。
我建议你使用缓冲读取器。
我假设您每次都需要要求用户输入一个值。因此,如果您删除文本以解决多重显示问题,用户将不会收到消息。
我附上了一段代码,带有一个BufferedReader,可以解决您的问题:
//This is the code I wrote.//
import java.util.Scanner;
import java.io.*;
import java.io.BufferedReader;
import java.util.*;
public class Grade{
public static void main(String[] args){
int A_grades = 0;
int B_grades = 0;
int C_grades = 0;
int D_grades = 0;
int F_grades = 0;
int count=0;
try{
//Scanner in = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
int score = Integer.parseInt(br.readLine());
while(score>0){
count++;
if(score>=90 && score<=100)
A_grades++;
else if(score>=80 && score<=89)
B_grades++;
else if(score>=70 && score<=79)
C_grades++;
else if(score>=60 && score<=69)
D_grades++;
else if(score>=0 && score<=59)
F_grades++;
System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
score = Integer.parseInt(br.readLine());
} //end while
}catch(IOException ioe){}
System.out.println("Total number of grades :"+ count);
System.out.println("Total number of A grades :"+ A_grades);
System.out.println("Total number of B grades :"+ B_grades);
System.out.println("Total number of C grades :"+ C_grades);
System.out.println("Total number of D grades :"+ D_grades);
System.out.println("Total number of F grades :"+ F_grades);
} // end main
} // end class
移除系统。出来println(“将考试分数输入为0到100之间的整数百分比:”
。
在生命数==0之后,while语句为false,必须退出循环。但在这种情况下,即使循环为false,也会执行循环。
我对java非常陌生,需要帮助。基本上,我有一个程序,要求用户输入一个数字。当输入该数字时,它会将该数字之前的所有奇数相加。我正在尝试(但失败)做的是,做另一个循环,当提示用户请求一个数字来求奇数之和时,我想让它只在输入奇数时继续,否则它将不断重复询问用户,直到他们输入奇数为止。我知道使用循环可以解决这个问题,但我不知道如何让它工作。 这是我的密码: 提前谢谢!
[print('帮助我是新的编程,我需要这个编码在python')]#当我试图运行这个程序 它运行第一个函数,打印,然后在IDLE中不运行任何其他功能。
我正在尝试编写一个程序,允许用户输入一系列整数形式的考试分数。 我希望输出看起来像: 输入整数,或输入 -99 退出:80 输入一个整数,或-99退出:95 输入整数,或-99退出:65 输入整数,或-99退出:-99 最大: 95最小: 65 第二轮: 输入整数,或-99退出:-99 您没有输入任何数字。 我把第一部分记下来了,但是当我输入-99时,我似乎不知道如何得到“你没有输入任何数字”行。
编写一个程序,提示用户输入两个点 (x1,y1) 和 (x2, y2) 并显示它们之间的距离。计算距离的公式为:(x2-x1)^2 (y2-y1)^2 的平方根 这就是我所拥有的: 然而: 我不断得到以下错误: 请帮忙。谢谢
我试图创建一个函数,使用不同的字段作为权重将数据分成十分之一,这样我就可以有相等的暴露桶。在这样做的时候,我创建了一个简单的例子,我试图进入3个桶。我确实在第一部分遇到了困难,那就是让这个while循环工作起来: 我的成绩是0,0 谢谢!