JAVA代码问题!输入5名学生的成绩,并计算总成绩,平均分,最高分,最低分
下面是我编写的一段代码importjava.util.Scanner;/***输入5名学生的成绩,并计算总成绩,平均分,最高分,最低分**/publicclassTest...
下面是我编写的一段代码
import java.util.Scanner;
/**
* 输入5名学生的成绩,并计算总成绩,平均分,最高分,最低分
*
*/
public class TestScore {
public static void main(String[] args) {
//声明一个数组变量
int scores[]=new int[5];
float total=0;//总成绩
float avg=0;//平均分
int max=0;
int min=0;
//扫描器
Scanner input=new Scanner(System.in);
System.out.println("请输入5名学生的成绩:");
for(int i=0;i<scores.length;i++){
scores[i]=input.nextInt();
}
//计算总成绩,平均分,最高分,最低分
max=scores[0];
min=scores[0];
//总成绩
for(int j=0;j<scores.length;j++){
total+=scores[j];
//最高分
if(scores[j]>max);{
max=scores[j];
}
//最低分
if(scores[j]<min);{
min=scores[j];
}
}
//平均分
avg=total / scores.length;
System.out.println("总成绩是"+total);
System.out.println("最高分是"+max);
System.out.println("最低分是"+min);
System.out.println("平均分是"+avg);
}
}
问题就在于,输出后,最大值和最小值不能正确的显示,显示的是最后一个输入的成绩,求大神指导,那里有问题? 展开
import java.util.Scanner;
/**
* 输入5名学生的成绩,并计算总成绩,平均分,最高分,最低分
*
*/
public class TestScore {
public static void main(String[] args) {
//声明一个数组变量
int scores[]=new int[5];
float total=0;//总成绩
float avg=0;//平均分
int max=0;
int min=0;
//扫描器
Scanner input=new Scanner(System.in);
System.out.println("请输入5名学生的成绩:");
for(int i=0;i<scores.length;i++){
scores[i]=input.nextInt();
}
//计算总成绩,平均分,最高分,最低分
max=scores[0];
min=scores[0];
//总成绩
for(int j=0;j<scores.length;j++){
total+=scores[j];
//最高分
if(scores[j]>max);{
max=scores[j];
}
//最低分
if(scores[j]<min);{
min=scores[j];
}
}
//平均分
avg=total / scores.length;
System.out.println("总成绩是"+total);
System.out.println("最高分是"+max);
System.out.println("最低分是"+min);
System.out.println("平均分是"+avg);
}
}
问题就在于,输出后,最大值和最小值不能正确的显示,显示的是最后一个输入的成绩,求大神指导,那里有问题? 展开
4个回答
展开全部
public static void main(String[] args) {
double scores[] = new double[5];
double total = 0;
double avg = 0;
double max = 0;
double min = 0;
int count=0;
String inputStr=null;
System.out.println("请输入5名学生的成绩:");
Scanner input = new Scanner(System.in);
while(count<5){
try{
if(count < 5){
System.out.println("请输入第"+(count+1)+"个分数:");
}
inputStr=input.nextLine();
scores[count++]=Double.valueOf(inputStr.trim());
}catch(Exception e){
if(inputStr!=null && "exit".equals(inputStr.trim())){
System.out.println("您已成功结束程序");
System.exit(0);
}
System.out.println("若想结束请输入:exit");
System.out.print("您输入的分数不是数值类型,");
count--;
}
}
input.close();
Arrays.sort(scores);
min=scores[0];
max=scores[scores.length-1];
for(double score :scores){
total += score;
}
avg=total/scores.length;
System.out.println("总成绩是" + total);
System.out.println("最高分是" + max);
System.out.println("最低分是" + min);
System.out.println("平均分是" + avg);
}
//-------------------------------------------------------------------------
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(true){
Double[] scores = null;
double total = 0;
double avg = 0;
double max = 0;
double min = 0;
int count=1;
List<Double> inputScores=new ArrayList<Double>();
String inputStr=null;
System.out.println("请输入要统计学生的成绩(理论上可以输入无限个,前提是你有那么大的内存):");
while(true){
try{
System.out.println("请输入第"+count+++"个分数,或输入ok进行计算,离开请输入exit");
inputStr=input.nextLine();
inputScores.add((double)Double.valueOf(inputStr.trim()));
}catch(Exception e){
if(inputStr!=null && "exit".equals(inputStr.trim().toLowerCase())){
System.out.println("您已成功结束程序");
input.close();
System.exit(0);
}
if(inputStr!=null && "ok".equals(inputStr.trim().toLowerCase())){
break;
}
System.out.println("您输入的分数不是数值类型,");
System.out.println("若想结束请输入exit ,若想计算结果请输入ok");
count--;
}
}
if(inputScores.size()==0){
System.out.println("您没有输入学生成绩,无数据可统计,程序结束。");
return ;
}
scores=inputScores.toArray(new Double[inputScores.size()]);
Arrays.sort(scores);
min=scores[0];
max=scores[scores.length-1];
for(double score :scores){
total += score;
}
avg=total/scores.length;
System.out.println("总成绩是" + total);
System.out.println("最高分是" + max);
System.out.println("最低分是" + min);
System.out.println("平均分是" + avg);
}
}
double scores[] = new double[5];
double total = 0;
double avg = 0;
double max = 0;
double min = 0;
int count=0;
String inputStr=null;
System.out.println("请输入5名学生的成绩:");
Scanner input = new Scanner(System.in);
while(count<5){
try{
if(count < 5){
System.out.println("请输入第"+(count+1)+"个分数:");
}
inputStr=input.nextLine();
scores[count++]=Double.valueOf(inputStr.trim());
}catch(Exception e){
if(inputStr!=null && "exit".equals(inputStr.trim())){
System.out.println("您已成功结束程序");
System.exit(0);
}
System.out.println("若想结束请输入:exit");
System.out.print("您输入的分数不是数值类型,");
count--;
}
}
input.close();
Arrays.sort(scores);
min=scores[0];
max=scores[scores.length-1];
for(double score :scores){
total += score;
}
avg=total/scores.length;
System.out.println("总成绩是" + total);
System.out.println("最高分是" + max);
System.out.println("最低分是" + min);
System.out.println("平均分是" + avg);
}
//-------------------------------------------------------------------------
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while(true){
Double[] scores = null;
double total = 0;
double avg = 0;
double max = 0;
double min = 0;
int count=1;
List<Double> inputScores=new ArrayList<Double>();
String inputStr=null;
System.out.println("请输入要统计学生的成绩(理论上可以输入无限个,前提是你有那么大的内存):");
while(true){
try{
System.out.println("请输入第"+count+++"个分数,或输入ok进行计算,离开请输入exit");
inputStr=input.nextLine();
inputScores.add((double)Double.valueOf(inputStr.trim()));
}catch(Exception e){
if(inputStr!=null && "exit".equals(inputStr.trim().toLowerCase())){
System.out.println("您已成功结束程序");
input.close();
System.exit(0);
}
if(inputStr!=null && "ok".equals(inputStr.trim().toLowerCase())){
break;
}
System.out.println("您输入的分数不是数值类型,");
System.out.println("若想结束请输入exit ,若想计算结果请输入ok");
count--;
}
}
if(inputScores.size()==0){
System.out.println("您没有输入学生成绩,无数据可统计,程序结束。");
return ;
}
scores=inputScores.toArray(new Double[inputScores.size()]);
Arrays.sort(scores);
min=scores[0];
max=scores[scores.length-1];
for(double score :scores){
total += score;
}
avg=total/scores.length;
System.out.println("总成绩是" + total);
System.out.println("最高分是" + max);
System.out.println("最低分是" + min);
System.out.println("平均分是" + avg);
}
}
展开全部
if(scores[j]>max);{
max=scores[j];
}
//最低分
if(scores[j]<min);{
min=scores[j];
}
这个if条件的后面不要分号
要这么写
if(scores[j]>max){
max=scores[j];
}
//最低分
if(scores[j]<min){
min=scores[j];
}
max=scores[j];
}
//最低分
if(scores[j]<min);{
min=scores[j];
}
这个if条件的后面不要分号
要这么写
if(scores[j]>max){
max=scores[j];
}
//最低分
if(scores[j]<min){
min=scores[j];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(scores[j]>max);{max=scores[j];
} 多谢了分号。应该写为 if(scores[j]>max){max=scores[j];
}
} 多谢了分号。应该写为 if(scores[j]>max){max=scores[j];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(scores[j]>max);{
max=scores[j];
}
//最低分
if(scores[j]<min);{
min=scores[j];
}
把if后边的分号去掉。
max=scores[j];
}
//最低分
if(scores[j]<min);{
min=scores[j];
}
把if后边的分号去掉。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询