0 / 0 / 0
Регистрация: 18.09.2014
Сообщений: 30
1

Не могу найти причину ошибки !

01.11.2015, 19:10. Показов 744. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include<locale.h>
#include<stdio.h>
#include<iostream>
#include<time.h>
#include<algorithm>
#include<vector>
using namespace std;
 
void block_search_ord(int*, int, int);
void BinarniySearch(int*, int, int);
int l=0;
int main()
{
    for (;;)
    {
        setlocale(LC_ALL, "rus");
        int mass[1000], a, b, x, size, n;
        printf("Введите размерность массива: ");
        scanf_s("%d", &size);
        printf("Введите диапазон чисел массива от a до b (0 - 1000): ");
        scanf_s("%d%d", &a, &b);
        printf("Сгенерированный массив: ");
        srand(time(NULL));
        for (short i = 0; i < size; i++)//заполнение массива случайными числами
        {
            mass[i] = a + rand() % (b - a);
            cout << mass[i] << " ";
        }
        for (int j = 0; j < size - 1; j++)
        {
            for (int i = 0; i < size - 1; i++)
            {
                if (mass[i] > mass[i + 1])
                {
                    a = mass[i];
                    mass[i] = mass[i + 1];
                    mass[i + 1] = a;
                }
            }
        }
        cout << "\nУпорядоченный массив: ";
        for (short i = 0; i < size; i++)
        {
            cout << mass[i]<<" ";
        }
        cout << endl;
        printf("\nВведите искомый элемент: ");
        cin >> x;
        printf("Выберите алгоритм поиска: \n1 - m-блочный поиск\n2 - Бинарный поиск\n3 - поиск с помощью встроенных функций С++: ");
        scanf_s("%d", &n);
        if (n == 1)
        {
 
            block_search_ord(mass, size, x);//m-блочный поиск
        }
        else if (n == 2)
        {
            barrier(mass, size, x);//Бинарный поиск
        }
        else if (n == 3)//поиск с помощью встроенной функции find()
        {
            vector<int> v(mass, mass + size);
            int i = find(v.begin(), v.end(), x) - v.begin();
            if (i < size)
                cout << "Элемент " << x << " находится под индексом: " << i << endl;
            else  cout << "Элемент " << a << " не найден в данном массиве " << endl;
        }
    }
    return 0;
}
 
void block_search_ord(int* arr, int n, int a)
{
    int i = 0, m=0, l, sr = 0;
    m=n/sqrt(n);
 
    for (short i = m-1; i < n;)
    {
        l=i;
        sr++;
        if(a<arr[i]){
            l= i - (m+1);
            break;
        }
        else if(a==arr[i])
        {
        cout << "Элемент "<<a<<" находится под индексом: " << i<<endl
        << "Количество сравнений = "<< sr+1<< endl;
 
        }
        i=i+m;
 
    }
    int c=l+m;
    for(l;l<c;l++)
    { 
        sr++;
        if (l > (n - 1))
                {
                    cout << "Элемент " << a << " не найден в данном массиве "<<endl;
                    break;
                }
        if(a==arr[l])
        {
        break;
        }
    }
    
        if (l<(n-1)) cout << "Элемент "<<a<<" находится под индексом: " << l<<endl
        << "Количество сравнений = "<< sr+1<< endl; 
}
 
 
void barrier(int *Arr, int size, int key)
{
 setlocale(LC_ALL,"Russian");
 int j = 0; 
 int counter = 0;
 Arr[size] = key;
 while(true)
 {
  counter++;
  if(Arr[j] == key)
  {
   break;
  }
  j++;
 }
 if (j>=size)
 {
  cout <<"Нет ключа! " << key << "\nСравнений:" << counter << endl;
  cout << "--------------------" << endl;
 }
 else
 {
  cout <<"Ключ найден! " << key << "\nСравнений:" << counter << endl;
  cout << "--------------------" << endl;
 }
}
Компилятор выдаёт ошибку (error C3861: barrier: идентификатор не найден), не могу найти причину, хелп плз !!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2015, 19:10
Ответы с готовыми решениями:

Не могу осознать причину ошибки
Ну, в общем, читаю, такой, Страуструпа и прогаю малеху его примеры. Вот реализация одного из них:...

Не могу понять причину ошибки (связано с выделением динамической памяти под двумерный массив и ее удаление)
Я студент 1 курса , и выполняя задание столкнулся с проблемой. Вот само задание: Ввести оценки N...

Найти причину возникновения ошибки
Выбрасывает здесь ошибку (if (Mart&gt;Max)) не знаю почему #include&lt;stdio.h&gt; #include&lt;math.h&gt;...

не работает функция, не могу найти причину
Всех с праздником! Задача: Необходимо написать программу состоящую из нескольких функция -...

3
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
01.11.2015, 19:15 2
Цитата Сообщение от Quentyn Посмотреть сообщение
barrier(mass, size, x);//Бинарный поиск
перемести реализацию этой функции над функцией мейн
0
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
01.11.2015, 19:16 3
Цитата Сообщение от Quentyn Посмотреть сообщение
void BinarniySearch(int*, int, int);
Цитата Сообщение от Quentyn Посмотреть сообщение
void barrier(int *Arr, int size, int key)
и еще там не бинарный а линейный поиск
0
0 / 0 / 0
Регистрация: 18.09.2014
Сообщений: 30
01.11.2015, 19:21  [ТС] 4
Спасибо, видно совсем мозг потёк )) если я такого не заметил
0
01.11.2015, 19:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2015, 19:21
Помогаю со студенческими работами здесь

HEAP CORRUPTION DETECTED не могу найти причину
вот фрагмент кода int size; char *TempChar; MyStream.read((char*)&amp;size, sizeof size);...

Не могу найти причину, по которой компилятор выдает ошибку
Здравствуйте! проблемы с этой задачей, учусь на первом курсе систем информационной безопасности, не...

Инициализация поля класса (строки в стиле Си): найти причину возникновения ошибки и исправить эту ошибку
Начинаю учить C++ и хочу сделать что-то типо &quot;игры&quot; в текстовом варианте. Вот столкнулся с...

Найти причину ошибки "fatal error LNK1120: неразрешенных внешних элементов: 1"
Добрый день, код по условию задачи выбивает ошибку &quot; fatal error LNK1120: неразрешенных внешних...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru