JAVA 的问题,我编写的程序运行时显示结果的窗口出不来,大家能帮我找到问题在哪里吗?
有一个卡拉OK比赛,共有10个评委打分,得分规则为去掉一个最高分和一个最低分剩余分数的平均分即为选手得分,编写一个Java程序让用户输入10个评委的打分,计算选手的得分
我的程序:
public class GetScore {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int i;
float a[]=new float[10],aver=0,max=0,min=a[0],s=0;
for(i=0;i<10;i++){
a[i]=sc.nextFloat();
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
s=s+a[i];
}
aver=(s-min-max)/8;
System.out.println("该选手的得分是:"+aver);
}
} 展开
原因:1、类头前少加一行:import java.util.*;
2、输入选手得分时,每输入一个数,要按一次回车。共输入10个数,需相应按10次回车。附图为在NETBEANS6.8中运行的截图。 如果想界面友好些,可以稍修改代码为:
import java.util.*;
public class GetScore {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int i;
float a[]=new float[10],aver=0,max=0,min=a[0],s=0;
for(i=0;i<10;i++){
System.out.println("请第"+Integer.toString(i+1)+"个评委亮分:");
a[i]=sc.nextFloat();
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
s=s+a[i];
}
aver=(s-min-max)/8;
System.out.println("该选手的得分是:"+aver);
}
}
for(i=0;i<10;i++)
{ System.out.println("请评委亮分:");//这里增加一个输出即可
a[i]=sc.nextFloat();
if(a[i]>max) max=a[i];
前面没注意看你的算法,这个最高分最低分一般直接在循环里这样设置:
max=min=a[0];
程序完全没问题了,祝你好运,。
还有你说的出不来的问题,应该是你没看到结果而已,你先要输入十个数字,才可以,、
或者像楼上所说,添加一条输出信息。