for(i=0; i<nNumOfMan/2; i++) {
manTable[i].nGoodOrBad = 0;
manTable[i].nPosition = i;
}
for(i=nNumOfMan/2; i<nNumOfMan; i++) {
manTable[i].nGoodOrBad = 1;
manTable[i].nPosition = i;
}
改为
for(i=0; i<nNumOfMan/2; i++) {
manTable[i]=new Man();
manTable[i].nGoodOrBad = 0;
manTable[i].nPosition = i;
}
for(i=nNumOfMan/2; i<nNumOfMan; i++) {
manTable[i]=new Man();
manTable[i].nGoodOrBad = 1;
manTable[i].nPosition = i;
}

解决方案 »

  1.   

    先在man类里面加构造函数
    然后改
    mfor(k=i; k<nNumOfManCopy; k++)
    manTable[k] = manTable[k+1];为
    for(k=i; k<nNumOfManCopy-1; k++){
    manTable[k].nGoodOrBad = manTable[k+1].nGoodOrBad;
    manTable[k].nPosition = manTable[k+1].nPosition;}
    nNumOfManCopy --;
    }
      

  2.   

    执行的时候
    Exception in thread "main" java.lang.NullPointerException at xxx.main(xxx.java:50)
      

  3.   

    就是joseph环的问题原题是这样的
    。。
    原始的joseph问题描述如下:有n个人围坐在一个圆桌周围,把这n个人依次编号为1,2,n。
    从编号是1的人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,
    数到第m个人又出列。如此反复知道所有人都出列为止。比如当n=6,m=5时,
    出列的顺序依次为5 4 6 2 3 1。
     现在的问题是:假设有k个好人和k个坏人。好人的编号是1到k,
    坏人的编号是k+1到2k。我们希望求出m的最小值,使得先出列的k个人都是坏人。 输入
      k(0〈k〈14)
     输出
     m
    样例;
     输入4
    输出30
      (noip2004普及组初赛)
      

  4.   

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Joseph.main(Joseph.java:48)
      

  5.   

    程序没有细看
    但是错误是数组出界
     k<nNumOfManCopy-1
    改成-1就不会有这个问题了