Как вывести только 3 команды которые набрали больше очков? - C#

Узнай цену своей работы

Формулировка задачи:

Мне нужно что бы было так как есть ,только на экран выводило 3 команды которые набрали больше очков,что нужно изменить?
int[,] team = new int[16, 16]{{0, 0, 3, 3, 0, 1, 1, 0, 0, 0, 3, 1, 1, 3, 0, 3}, 
                              {3, 0, 0, 0, 0, 1, 1, 0, 1, 0, 3, 0, 0, 1, 1, 1}, 
                              {0, 3, 0, 1, 1, 3, 0, 1, 1, 1, 1, 3, 3, 1, 0, 0}, 
                              {1, 1, 1, 0, 1, 1, 1, 1, 3, 3, 3, 0, 0, 0, 0, 1}, 
                              {1, 3, 1, 3, 0, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1}, 
                              {3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0}, 
                              {1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1}, 
                              {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 
                              {1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 3, 3, 3, 3}, 
                              {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}, 
                              {0, 0, 3, 3, 3, 1, 1, 1, 3, 3, 0, 3, 3, 1, 1, 3}, 
                              {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, 3}, 
                              {1, 1, 3, 3, 3, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1}, 
                              {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 3, 3, 0, 0, 0}, 
                              {3, 3, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 0, 3}, 
                              {0, 1, 3, 0, 1, 3, 0, 1, 3, 0, 1, 3, 0, 1, 3, 0}};
int[] sum = new int[16];
int[] nums = new int[16];
for (int i = 0; i < 16; i++)
{
    int tmp = 0;
    for (int j = 0; j < 16; j++)
    {
        tmp += team[i, j];
    }
    sum[i] = tmp;
    nums[i] = i;
}
for (int i = 0; i < 16; i++)
{
    for (int j = 15; j > i; j--)
    {
        if (sum[j] > sum[j - 1])
        {
            int tmp = sum[j];
            sum[j] = sum[j - 1];
            sum[j - 1] = tmp;
            tmp = nums[j];
            nums[j] = nums[j - 1];
            nums[j - 1] = tmp;
        }
    }
}
for (int i = 0; i < 16; i++)
{
    Console.WriteLine("Команда: {0}\t Мiсце: {1}\t Сума набраних очкiв:{2}", nums[i] + 1, i + 1, sum[i]);
}
Console.ReadKey();

Решение задачи: «Как вывести только 3 команды которые набрали больше очков?»

textual
Листинг программы
for (int i = 0; i < sum.Length - 1; i++)
    for (int j = i + 1; j < sum.Length; j++)
    {
        if (sum[i] < sum[j])
        {
            int temp = sum[i];
            sum[i] = sum[j];
            sum[j] = temp;
 
            temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
    }
 
for (int i = 0; i < 3; i++)
{
    Console.WriteLine("Команда: {0}\t Мiсце: {1}\t Сума набраних очкiв:{2}", nums[i] + 1, i + 1, sum[i]);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы