程序忽略第一个if语句

时间:2011-11-28 03:44:41

标签: c#

我写了一个程序,要求一个人输入一个团队号码(假设0,1或2)以及团队为某个游戏进球的目标数量。我有两个问题。首先,尝试查看是否存在平局的if语句完全被忽略,其次,第2组总是被评为平局中的最低,中等和最高级别。 我对C#非常陌生,所以请回答新手:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        public static void updateScores(int x, int myTeam1, int myGoal1, int myTeam2, int myGoal2, int[,] values)
        {
            values[myTeam1, x] = myGoal1;
            values[myTeam2, x] = myGoal2;

        }
        static void Main(string[] args)
        {

            //declare variables and integer array 
            //the different locations are set by default to 0
            int highest;
            int middle;
            int lowest;
            int counter = 0;
            int x;
            int y;
            int z;
            int team1;
            int team2;
            int goals1;
            int goals2;
            int[,] teamsGoalArray = new int[3, 4];

            //get information about teams playing and goals scored
            while (counter <= 2)
            {
        Console.WriteLine("Please enter the first team playing in the {0} game", counter+1);
        team1 = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Please enter the number of goals for the team playing in the {0} game", counter       +1);
        goals1 = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Please enter the second team playing in the {0} game", counter+1);
        team2 = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Please enter the number of goals for the team playing in the {0} game", counter +1);
        goals2 = Convert.ToInt32(Console.ReadLine());
        updateScores(counter, team1, goals1, team2, goals2, teamsGoalArray);
        ++counter;
        }

        int a = teamsGoalArray[0, 1] + teamsGoalArray[0, 2] + teamsGoalArray[0, 3];
        int b = teamsGoalArray[1, 1] + teamsGoalArray[1, 2] + teamsGoalArray[1, 3];
        int c = teamsGoalArray[2, 1] + teamsGoalArray[2, 2] + teamsGoalArray[2, 3];

        if (a == b && a == c && b == c)
        {
            Console.WriteLine("All three teams had a total of {0} goals", a);
        }

        if (a >= b && a >= c)
            {
                highest = a;
                x = 0;
            }

            else
                if (b >= a && b >= c)
                {
                    highest = b;
                    x = 1;
                }
                else
                {
                    highest = c;
                    x = 2;
                }
            Console.WriteLine("Team {0} had the highest score with {1} goals", x, highest);

            if (a < b && a > c || a > b && a < c)
            {
                middle = a;
                y = 0;
            }
            else
                if (b < a && b > c || b > a && b < c)
                {
                    middle = b;
                    y = 1;
                }
                else
                {
                    middle = c;
                    y = 2;
                }
            Console.WriteLine("Team {0} had the middle score with {1} goals", y, middle);

            if (a < b && a < c)
            {
                lowest = a;
                z = 0;
            }
            else
                if (b < a && b < c)
                {
                    lowest = b;
                    z = 1;
                }
                else
                {
                    lowest = c;
                    z = 2;
                }
            Console.WriteLine("Team {0} had the lowest score with {1} goals", z, lowest);
        }
     }



  }

1 个答案:

答案 0 :(得分:1)

我看到的第一个问题是,当您致电updateScores时,您会传递counter的值,该值将为0,1或2.所以您正在填充teamsGoalArray[team, 0]通过teamsGoalArray[team, 2]。但是,当您将分数相加时,您需要teamsGoalArray[team, 1]添加teamsGoalArray[team, 3]。所以你错过了每支球队第一场比赛的得分。