Линейный поиск по массиву - C#

Узнай цену своей работы

Формулировка задачи:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication5
{
    class proba
    {
        static void Main()
        {
            int n, m, i, j, d;//инициализация
 
            Console.Write("Задайте количество элементов в массиве А: ");//задание размеров
            n = Convert.ToInt32(Console.ReadLine());
            Console.Write("Задайте количество элементов в массиве В: ");
            m = Convert.ToInt32(Console.ReadLine());
 
            int[] a = new int[n];//инициализация массивов
            int[] b = new int[m];
 
            int t1 = Environment.TickCount;//таймер
 
            Random Rnd = new Random();//рандомайзер
            int maxValue = 1000;
 
            for (i = 0; i < n; i++) a[i] = Rnd.Next(0, maxValue);//заполнение массивов
            for (i = 0; i < m; i++) b[i] = Rnd.Next(0, maxValue);
 
            Console.Write("Массив А: ");//вывод массивов
            for (i = 0; i < n; i++) Console.Write(a[i] + " ");
            Console.Write("\nМассив B: ");
            for (i = 0; i < m; i++) Console.Write(b[i] + " ");

            for (i = 0; i < n; i++)//сортировка массива A
            {
                for (j = n - 1; j > i; j--)
                {
                    if (a[j - 1] > a[j])
                    {
                        d = a[j - 1];
                        a[j - 1] = a[j];
                        a[j] = d;
                    }
                }
            }
 
            for (i = 0; i < m; i++)//сортировка массива B
            {
                for (j = m - 1; j > i; j--)
                {
                    if (b[j - 1] > b[j])
                    {
                        d = b[j - 1];
                        b[j - 1] = b[j];
                        b[j] = d;
                    }
                }
            }
 
            Console.Write("\nМассив А после сортировки: ");//вывод отсортированных массивов
            for (i = 0; i < n; i++) Console.Write(a[i] + " ");
            Console.Write("\nМассив В после сортировки: ");
            for (i = 0; i < m; i++) Console.Write(b[i] + " ");
 
            int[] c = a.Intersect(b).Distinct().ToArray();//вывод индивидуальных элементов, которые присутствуют в обоих массивах в массив C
            Console.WriteLine(string.Join(" ", c));
            Console.Write("\nМассив C: ");//вывод массива C
            for (i = 0; i < m; i++) Console.Write(c[i] + " ");
 
            Console.WriteLine("Введите число для поиска: ");//линейный поиск
            int p = Convert.ToInt32(Console.ReadLine());
            int k = 0;
            int u = 1;
            int r;
 
            for (int i = 0; i < c.Length; i++)
            {
                r = k + u;
                k = u;
                u = r;
                Console.WriteLine(u);
                if (c[i] > c.Length - 1) { break; }
                if (p == c[i])
                {
                    Console.WriteLine("Элемент есть");
                }
                Console.ReadKey(true);
            }
        }
    }
}
Вот такой вот код. Но линейный поиск не работает - пишет, что переменную i нельзя определить в данной области. Как "починить"?

Решение задачи: «Линейный поиск по массиву»

textual
Листинг программы
for (i = 0; i < c.Length; i++)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы