вторник, 16 мая 2017 г.

c#


Визначити номери рядків матриці, що містять хоча б один нульовий елемент
using System;
using System.Collections.Generic;
 
class Program
{
 
    static void Main()
    {
        // все методы с именем MyMethod перегружены
        const int count = 7;
        const int i = 0;
        Console.WriteLine("Исходная матрица");
        int[,] origin = MyMethod(count);
        Console.WriteLine("Номера строк (начиная с нуля), содержащих хотя бы один нулевой элемент");
        int[] mas = MyMethod(origin, count);
        foreach (int item in mas)
            Console.WriteLine(item);
        Console.WriteLine(@"Номер первого столбца, в котором находится самая 
длинная серия одинаковых элементов (счет ведется с нуля)  ->> {0}", MyMethod(origin, count, i));
 
        Console.ReadKey();
    }
    static int[,] MyMethod(int size)
    {
        Random r = new Random();
        int[,] mas = new int[size, size];
        for (int i = 0; i < size; ++i)
        {
            for (int j = 0; j < size; ++j)
            {
                mas[i, j] = r.Next(-9, 10);
                if (mas[i, j] < 0)
                    Console.Write(" " + mas[i, j]);
                else Console.Write("  " + mas[i, j]);
            }
            Console.WriteLine("\n");
        }
 
        return mas;
    }
 
    static int[] MyMethod(int[,] mas, int size)
    {
        List<int> ls = new List<int>();
        for (int i = 0; i < size; ++i)
        {
            for (int j = 0; j < size; ++j)
            {
                if (mas[i, j] == 0)
                {
                    if (!ls.Contains(i))
                        ls.Add(i);
                }
            }
        }
        int[] countStr = ls.ToArray();
        return countStr;
    }
 
    static int MyMethod(int[,] mas, int size, int a)
    {
        int number = 0, max = 0; ;
        int[] temp = new int[size];
        for (int i = 0; i < size; ++i)
        {
            int count = a;
            for (int j = 0; j < size; ++j)
            {
 
                temp[j] = mas[j, i];
                if (j < size - 1 && mas[j, i] == mas[j + 1, i])
                {
                    count++;
                    if (count > max)
                    {
                        max = count;
                        number = i;
                    }
                }
                else count = 0;
 
            }
 
        }
        return number;
    }
}

Комментариев нет:

Отправить комментарий