Skip to content

10.10.2011

10. Массивы

Задания

1.      Найти первое вхождение в массив заданного числа.

 

2.      Найти значение наибольшего числа в массиве.

 

3.      Найти расположение (индекс) наибольшего числа в массиве. Если таких чисел несколько, найти индекс первого из них.

 

4.      Задан массив из n элементов. Изменить порядок значений в нем на противоположный.

5.      В массиве находятся числа, среди которых есть и нули. Сдвинуть все ненулевые числа к левому краю массива.

6.      Найти все простые числа не превышающие миллиона. Воспользоваться решетом Эратосфена.


Значение массивов в примерах я не задавал, долго=)
№1:

        static void Main(string[] args)
        {
            int[] m = new int[20];
            int otv;
            int ch = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i < m.Length; i++)
            {
                if (m[i] == ch)
                {
                    otv = i;
                    break;
                }
            }
            Console.WriteLine(otv); 
        }

№2:

        static void Main(string[] args)
        {
            int[] m = new int[20];
            int otv=m[0];
            for (int i = 1; i < m.Length; i++)
            {
                if (m[i] > otv)
                {
                    otv = m[i];
                }
            }
            Console.WriteLine(otv); 
        }

№3:

        static void Main(string[] args)
        {
            int[] m = new int[20];
            int otv=m[0], index = 0;
            for (int i = 1; i < m.Length; i++)
            {
                if (m[i] > otv)
                {
                    otv = m[i];
                    index = i;
                }
            }
            Console.WriteLine(otv+" "+index); 
        }

№4:

        static void Main(string[] args)
        {
            int[] m = new int[20];
            for (int i = 0; i < m.Length/2; i++)
            {
                m[i] = m[i] + m[m.Length - i];
                m[m.Length - i] = m[i] - m[m.Length - i];
                m[i] = m[i] - m[m.Length - i];
            } 
        }

№5:

        static int[] sdvig(int[] m, int i)
        {
            for (int k = i; k < m.Length-1; k++)
            {
                m[k] = m[k + 1];
            }
            return m;
        }
        static void Main(string[] args)
        {
            int[] m = {0, 10, 32, 5, 0, 5, 0};
            for (int i = 0; i < m.Length; i++)
            {
                if (m[i] == 0) m = sdvig(m, i);
            }
        }

№6:

        static bool[] Prost(int n) // метод для нахождения простых чисел с помощью решета Эратосфена
        {
            bool[] m = new bool[n];
            for (int i = 2; i < n; ++i)
            {
                if (m[i] == false)
                {
                    for (int j = 1; i + i * j < n; ++j)
                    {
                        m[i + i * j] = true;
                    }
                }
            }
            return m;
        }

В Main’е создаем массив m = prost(1000000) и считаем сумму индексов всех элементов «false»

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments