Как вывести только 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]);
}