Форум программистов, компьютерный форум CyberForum.ru

Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
vitaxa94
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 66
01.04.2013, 01:08     Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу #1
Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу.
Не могу понять почему ругается на поиск с барьером. Помогите разобраться.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// lab4.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
    using namespace std;
    int zapolnenie(int mas[]);
    int linear_search(int const mas[],int key);
    int linear_search_barier(int mas[],int key);
    int const length=10;
int main()
 { 
     setlocale(LC_ALL,"RUS");
     int masiv[length+1],key;
     zapolnenie(masiv);
     cout<<"Исходный массив:\n";
     for(int i=0;i<length;i++)
        cout<<masiv[i]<<" ";
        cout<<"\n\nПростой линейный поиск:\n"<<"Введите ключ для поиска: ";
        cin>>key;
        int i=linear_search(masiv,key);
           if ( i == -1) cout<<"Элемент не найден"<<endl;
             else cout<<"Индекс искомого элемента: "<<i<<endl<<endl;
             cout<<endl<<"Линейный поиск с барьером\nВведите ключ для поиска: ";
             cin>>key;
             i=linear_search_barier(masiv,key);
          if ( i == -1) cout<<"Элемент не найден"<<endl;
            else cout<<"Индекс искомого элемента: "<<i<<endl;
        return 0;
 }
int linear_search(int const mas[],int key)
 {
   for(int i=0;i<length;i++)
    if(mas[i]==key)
    return i;
    return -1;
 }
   int linear_search_barier(int mas[],int key)
 {
   mas[length+1]=key;
   int i=0;
   while (mas[i]!=key) i++;
   if (i!=(length+1)) 
       return i;
   else 
       return -1;
 }
int zapolnenie(int mas[])
 {
   for(int i=0;i<length;i++)
    {
      mas[i]=rand()%100;
    }
   return 0;
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 01:08     Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу
Посмотрите здесь:

C++ поиск ключу в одномерном массиве структур
поиск по ключу C++
Поиск с барьером или без него C++
Проверить, имеется ли в двумерном числовом массиве C++
Линейный поиск в массиве и списке C++
C++ Линейный поиск с барьером в массиве структур (С++)
C++ Объяснить линейный поиск в массиве и сортировка массива
C++ Линейный поиск в массиве структуры

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
01.04.2013, 05:03     Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу #2
Цитата Сообщение от vitaxa94 Посмотреть сообщение
int linear_search_barier(int mas[],int key)
*{
* *mas[length+1]=key;
* *int i=0;
* *while (mas[i]!=key) i++;
* *if (i!=(length+1))
* * * *return i;
* *else
* * * *return -1;
*}
тут много багов. откуда элемент с индексом ленс+1?
Yandex
Объявления
01.04.2013, 05:03     Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу
Ответ Создать тему
Опции темы

Текущее время: 06:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru