Линейный поиск в массиве - C (СИ)
Формулировка задачи:
ребята, направьте на путь истинный, что не так делаю...
не работает этот код, находит мусор.
void main ()
{
SetConsoleOutputCP (1251);
int key, idx;
cout<<"Что ищем?\n";
cin>>key;
const int N = 10;
int a[N]={1,2,3,4,5,6,7,8,9,10};
//search (a, N, key);
for (int i=0; i<N; i++)
{
if (a[i]==key) idx=i; break;
}
cout<<"Найдено в "<<idx<<"\n";
}Решение задачи: «Линейный поиск в массиве»
textual
Листинг программы
#include <iostream>
using namespace std;
int main( void ) {
int index= -1, key, i;
cout <<"Enter key:";
cin >>key;
const int N= 10;
int a[N]= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for ( i= 0; i<N; i++ ) {
if ( key == a[i] ) { index= i; break; }
}
if ( index>=0 ) {
cout <<"Found index: " <<index <<"\n";
} else {
cout <<"Not found index\n";
}
return 0;
} // main()
Объяснение кода листинга программы
В этом коде выполняется линейный поиск в массиве. Вот список действий, которые происходят в коде:
- Ввод ключа с помощью функции
cin. - Объявление константы
Nи массиваaразмером 10. - Инициализация всех элементов массива
aзначением 0. - Переменная
indexинициализируется значением -1. - Цикл
forпроходит по всем элементам массиваa. - Внутри цикла проверяется, равен ли текущий элемент массива
key. - Если условие выполняется, то переменная
indexпринимает значениеi, и цикл прерывается с помощью оператораbreak. - После завершения цикла проверяется значение переменной
index. - Если
indexбольше или равен 0, то выводится сообщение о найденном индексе. - Если
indexменьше 0, то выводится сообщение о том, что индекс не найден. - Конец функции
mainс помощью оператораreturn. Таким образом, данный код реализует простую версию линейного поиска в массиве.