Найдите максимальное из чисел, встречающихся в заданной матрице более одного раза — C++(Си)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
class Program
{
    static void Main()
    {
        int[,] masiv = new int[5, 3];
        //********************************* ВВод*******************************
        for (int i = 0; i < 5; i++)
         {
            for (int j = 0; j < 3; j++)
            {
                Console.Write("Введите {0} элемент: ", "masiv[" + i + "," + j + "]");
                masiv[i, j] = Convert.ToInt32(Console.ReadLine());              
            }
            Console.WriteLine();
         }
        //********************************* Вывод ***********************
        for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 3; j++)                
                    Console.Write(masiv[i, j] + " ");                
             Console.WriteLine();
            }
        //************************* Строки без единого нуля********************
        int m = 1;
        int k = 0;
         for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 3; j++)                
                    if (masiv[i, j] == 0)
                        m = 0;                
                k += m;
                m = 1;
            }
         Console.WriteLine("Количество строк не содержащих не одного нуля :"+k);   
        //********максимальное из чисел, встречающихся в заданной матрице более одного раза*********  
        int max=0,kol=0;
        bool flag=false;
        do
        {   
            //************** Поиск максимального ***********
            max = masiv[0, 0];
            for (int i = 0; i < 5; i++)            
                for (int j = 0; j < 3; j++)                
                    if (max < masiv[i, j])
                        max = masiv[i, j];                
            //**************** Проверка на количество*********
            kol = 0;
            for (int i = 0; i < 5; i++)            
                for (int j = 0; j < 3; j++)                
                    if (masiv[i, j] == max) 
                        kol++;                
            
            if (kol > 1)
                flag = true;
            else            
                for (int i = 0; i < 5; i++)                
                    for (int j = 0; j < 3; j++)                    
                        if (masiv[i, j] == max)
                            masiv[i, j] = int.MinValue;       
        } while (!flag);
        Console.WriteLine("\nМаксимальное из чисел, встречающихся в заданной матрице более одного раза: " + max);   
        Console.ReadLine();
    }
}

Leave a Comment

− 2 = 1