本帖最后由 a002zheng 于 2014-06-02 11:10:15 编辑

解决方案 »

  1.   


    for (int i=0; i<a.length; i++) {
    //判断A方得分
    if (a[i]==1) {
    x=x+x1;
    x1++;
    y1=1;
    //判断B方得分
    } else {
    if (a[i]==0) {
    y=y+y1;
    y1++;
    x1=1;
    }
    }
    }
      

  2.   


    public class DaQiu {    public static void main(final String[] args) {        // 胜负数组,1代表A赢,0代表B赢
            int[] victory_defeat
                    = {1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0};        // 总比分
            int totalScoreA = 0;
            int totalScoreB = 0;        // 当前局比分
            int currentScoreA = 0;
            int currentScoreB = 0;        for (int ii = 0; ii < victory_defeat.length; ii++) {
                if (victory_defeat[ii] == 1) { // A赢球
                    // 当前局比分为0时,将其设为1;否则将其加1
                    currentScoreA = (currentScoreA == 0) ? 1 : currentScoreA + 1;
                    totalScoreA += currentScoreA; // 将当前局的比分加到总比分上
                    currentScoreB = 0; // 将B的当前局的比分设置为0
                }            if (victory_defeat[ii] == 0) { // B赢球
                    // 当前局比分为0时,将其设为1;否则将其加1
                    currentScoreB = (currentScoreB == 0) ? 1 : currentScoreB + 1;
                    totalScoreB += currentScoreB; // 将当前局的比分加到总比分上
                    currentScoreA = 0; // 将A的当前局的比分设置为0
                }            System.out.println(
                        "第" + (ii + 1) + "局\t"
                        + ((victory_defeat[ii] == 1) ? "A赢" : "B赢")
                        + "\t本局A得" + currentScoreA + "分"
                        + "\tA的总分为" + totalScoreA
                        + "\t本局B得" + currentScoreB + "分"
                        + "\tB的总分为" + totalScoreB);
            }        System.out.println("A的总比分:" + totalScoreA);
            System.out.println("B的总比分:" + totalScoreB);
            if (totalScoreA > totalScoreB) {
                System.out.println("A赢了");
            } else if (totalScoreA < totalScoreB) {
                System.out.println("B赢了");
            } else {
                System.out.println("平局");
            }
        }
    }
    第1局 A赢 本局A得1分 A的总分为1 本局B得0分 B的总分为0
    第2局 A赢 本局A得2分 A的总分为3 本局B得0分 B的总分为0
    第3局 B赢 本局A得0分 A的总分为3 本局B得1分 B的总分为1
    第4局 B赢 本局A得0分 A的总分为3 本局B得2分 B的总分为3
    第5局 B赢 本局A得0分 A的总分为3 本局B得3分 B的总分为6
    第6局 B赢 本局A得0分 A的总分为3 本局B得4分 B的总分为10
    第7局 B赢 本局A得0分 A的总分为3 本局B得5分 B的总分为15
    第8局 A赢 本局A得1分 A的总分为4 本局B得0分 B的总分为15
    第9局 A赢 本局A得2分 A的总分为6 本局B得0分 B的总分为15
    第10局 B赢 本局A得0分 A的总分为6 本局B得1分 B的总分为16
    第11局 B赢 本局A得0分 A的总分为6 本局B得2分 B的总分为18
    第12局 B赢 本局A得0分 A的总分为6 本局B得3分 B的总分为21
    第13局 A赢 本局A得1分 A的总分为7 本局B得0分 B的总分为21
    第14局 A赢 本局A得2分 A的总分为9 本局B得0分 B的总分为21
    第15局 A赢 本局A得3分 A的总分为12 本局B得0分 B的总分为21
    第16局 B赢 本局A得0分 A的总分为12 本局B得1分 B的总分为22
    第17局 A赢 本局A得1分 A的总分为13 本局B得0分 B的总分为22
    第18局 B赢 本局A得0分 A的总分为13 本局B得1分 B的总分为23
    第19局 B赢 本局A得0分 A的总分为13 本局B得2分 B的总分为25
    第20局 A赢 本局A得1分 A的总分为14 本局B得0分 B的总分为25
    第21局 B赢 本局A得0分 A的总分为14 本局B得1分 B的总分为26
    A的总比分:14
    B的总比分:26
    B赢了
      

  3.   

    建议:养成认真为变量命名的好习惯之后,很多莫名其妙的Bug都会自动消失的……