Susan E. Russel
Susan E. Russel

Reputation: 27

Program ignores the first if statement

I wrote a program that asks a person to input a team number (assumming 0, 1 or 2) and how many goals the team scored for a certain game. I have two problems. First, the if statement that tries to see if there is a tie is completely ignored and, second, team 2 is always scored as the lowest, middle and highest team in a tie. I am extremely new to C# so please answer for a newbie:

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);
        }
     }



  }

Upvotes: 0

Views: 195

Answers (1)

Jim Mischel
Jim Mischel

Reputation: 134015

The first problem I see is that when you call updateScores, you pass the value of counter, which will be 0, 1, or 2. So you're filling teamsGoalArray[team, 0] through teamsGoalArray[team, 2]. But when you're adding up the scores, you're adding teamsGoalArray[team, 1] through teamsGoalArray[team, 3]. So you are missing the scores from the first game for each team.

Upvotes: 1

Related Questions