1

Тема: Три максимальних елемента.

Потрібно знайти 3 максимальних елемента в двовимірному масиві[3,5] і вивести їх. Для кожно рядку. Допоможіть будь ласка! Дякую)

2

Re: Три максимальних елемента.

Ну давайте ваш масив, знайду.

3

Re: Три максимальних елемента.

Одну знайшов, але як ще дві вивести?

 int maxindex = 0, max = mas[h, 0];
for ( h = 0; h < 3; h++)
{
    for (int j = 1; j < 5; j++)
    {
        if (mas[h, j] > max)
        {
            max = mas[h, j];
            maxindex = j;
        }
    }
    Console.WriteLine("Max speed: " + max);

4

Re: Три максимальних елемента.

static void Main(string[] args)
{
    int[,] mas = new int[3,5];
    Random gh = new Random();

    int i = 0;
   
    Console.WriteLine("\t***Перший заїзд***");
    for (int k = 0; k < 3; k ++ )
    {
        mas[0, k] = gh.Next(100, 150);
        i++;
        Console.WriteLine("Швидкість після першого заїзду ");
        Console.WriteLine(i + " машини " + mas[0, k]);
    }
    int maxindex = 0, max = mas[h, 0];
    for ( h = 0; h < 3; h++)
    {
        for (int j = 1; j < 5; j++)
        {
            if (mas[h, j] > max)
            {
                max = mas[h, j];
                maxindex = j;
            }
        }
        Console.WriteLine("Max speed: " + max);

Має вивести три машини в яких максимальні швидкості

5

Re: Три максимальних елемента.

зробіть стек довжиною в 3, наприклад. і пихайте туди максимальні елементи, після роботи циклу в стеку мають знаходитись 3 максимальні елементи
типу так, правда воно може зайняти багацько пам'яти, бо використовується стек

using System;
using System.Collections;

public class Test
{
    public static void Main()
    {
        Stack stack = new Stack();
        int[] arr = new int[]{4, 3, 2, 5, 6, 1};
        int max = arr[0];
        stack.Push(max);
        
        foreach (int el in arr) {
            if (el >= max) {
                max = el;
                stack.Push(max);
            }
        }
        
        for (int i = 0; i < 3; i++) {
            Console.WriteLine(stack.Pop());
        }
    }
}

тре зробити якось так, що коли в стеку вже є 3 елементи, і нам тре додати ще один, то треба вийняти елемент знизу стеку, аби на горі звільнилось місце, і тоди запхати в стек новий максимальний елемент. Тоді стек буде містити лише 3 елементи, найбільший буде на горі, а менші - нижче.

6 Востаннє редагувалося koala (18.03.2018 19:13:09)

Re: Три максимальних елемента.

Просто відсортуйте за спаданням і виводьте 3 перші елементи.

7

Re: Три максимальних елемента.

koala написав:

Просто відсортуйте за спаданням і виводьте 3 перші елементи.

воу воу, а якщо процесор згорить під час таких ресурсоємких операцій??