java问题 求解啊
题目  和错误
比赛规则是:
?	选手的得分是:评委评分(百分制) 去掉最高分和最低分后的平均分;
?	比赛结果:按得分从小到大排序,得分高的两名选手分别为冠亚军,各奖商品房一套和小轿车一辆。
提示(思路之一):
定义比赛类Race:
设private成员变量:  
    int raceNum, judgeNum;  //选手人数, 评委人数
    double race[10][2]
//其中race[][0]存放选手号(1~raceNum),race[][1]存放选手得分。(最多10名选手)
设public成员方法:
    Race(int n,int m)
    //通过构造函数初始化选手人数和评委人数。
    double computAve()
    //从键盘输入比赛选手的评委评分,计算并返回选手的得分。
    void raceScore()
    //设置选手号1~raceNum,存放到race[i][0]中(i=0~raceNum -1)。
    //调用computAve方法计算比赛所有选手得分,存放到race[i][1]中(i=0~raceNum -1)。
    void raceSort()  
// 实现比赛选手得分从小到大排序,同时对应调整选手号。
    void raceResult()
    // 调用raceScore和raceSort方法,输出选手得分和比赛结果。
    再定义主类RaceScorePro,在main方法中创建比赛类Race的对象,初始化5个选手和5个评委。调用raceResult方法输出比赛的结果。
程序运行结果:  
Exception in thread "main" 
java.lang.NullPointerException	at com.tttttt.Compete.raceScore(Demo4_4.java:47)
	at com.tttttt.Compete.raceResult(Demo4_4.java:80)
	at com.tttttt.Demo4_4.main(Demo4_4.java:10)
程序
package com.tttttt;
import java.util.*;
public class Demo4_4  
{	
	public static void main(String[] args)
	{
		Compete compete=new Compete(5, 5);
	    compete.raceResult();
	}
}
class Compete
{
	Scanner in=new Scanner(System.in);
	public Compete(int n,int m)
	{
		this.raceNum=n;
		this.judgeNum=m;
		 double race[][]=new double[n][2];//初始化
	}	
	public double computeAvg()
	{
		double sum=0.0;
		double[] grade = new double[judgeNum];				
		for (int i = 0; i < judgeNum; i++)
			grade[i] = in.nextDouble();		
		Arrays.sort(grade);//小到大排序		
		for (int s = 1; s < grade.length - 1; s++)
			 sum += grade[s];		
		return sum/judgeNum-2;				
	}	
	public void raceScore()
	{
		for(int i=0;i<raceNum;i++)
			race[i][0]=i+1;//选手号
		for(int j=0;j<raceNum;j++)
		{
			System.out.println("请输入第"+race[j][0]+"号选手的评委评分(百分制):");
			 race[j][1]=computeAvg();//选手分数
		}		  		
	}
	public void raceSort()//选择法
	{
		double temp[];
		int p;
		for (int x = 0; x < race.length - 1; x++)  
		{
			p = x;
			for (int y = x + 1; y < race.length; y++)
				if (race[p][1] > race[y][1])
					p = y;
			   if (p != x)  
			   {
				temp = race[p];
				race[p] = race[x];
				race[x] = temp;
			   }
		}
	}			
	public void raceResult()
	{
		raceScore();
		System.out.println("选手得分:");	
		raceSort();
		for(int i=race.length;i>0;i--)
	    {
		    System.out.println(race[i][0]+"号选手得分是"+race[i][1]);
		}		
		System.out.println("比赛的结果:");
		System.out.println(race[race.length][0]+"号选手为冠军,将商品房一套");
		System.out.println(race[race.length-1][0]+"号选手为亚军,将小轿车一辆");				
	}	
	private int raceNum;//选手人数
	private int judgeNum;//评委人数
	double[][] race;
}
------解决方案--------------------
建议楼主好好看看 java里面的数组操作,大部分的问题都是数组操作
刚开始报的
空指针错误是因为 构造方法里面用的race不是类的变量,你自己开了一个同名的race二维数组,导致后面用类的成员变量race没有初始化
Java code
import java.