Ten kod nie działa tak, jak się spodziewałeś:
int rozmiar, tab[rozmiar];
cout<<"podaj wielkosc tablicy"<<endl;
cin>>rozmiar;
To nie powoduje, że tab ma rozmiar podany przez użytkownika. Próbując czytać rozmiar w momencie tworzenia tablicy doprowadzasz do undefined behaviour. Wiesz, chodzi o to, że nie wiadomo jaka wartość znajduje się w zmiennej rozmiar w momencie, gdy tworzysz tab.
Jeżeli to jest Twoje pierwsze spotkanie z tablicami, to proponuję Ci na razie porzucić pomysł stosowania tablicy o rozmiarze podanym przez użytkownika, ustawić sobie jakiś stały rozmiar i skupić się na wykonywaniu innych ćwiczeń. Jeżeli zależy Ci na tym rozmiarze, to poszukaj jeszcze jak to zrobić dobrze :)
"Szukaj klucza – wynikiem jest pierwsza znaleziona wartość równa kluczowi i jej indeks". Mam kłopot z pomysłem na to (...)
Popatrz. Masz tablicę, w której znajdują się liczby: 5, 8, 12, 0.
1. Ktoś Cię prosi, żebyś powiedział, czy w niej jest 12 i jak jest, to na której pozycji. Rozwiązanie:
Czy jest na 0-pozycji? Nie. To sprawdzam dalej...
Czy jest na 1-pozycji? Nie. To sprawdzam dalej...
Czy jest na 2-pozycji? Tak. To odpowiadam: znalazłem 12 na pozycji 2.
2. Weź pod uwagę, że jeszcze może być tak, że ktoś zapyta Cię o liczbę, której nie masz w tablicy, np. 42. Twój program mógłby się wtedy zachować tak:
Czy jest na 0-pozycji? Nie. To sprawdzam dalej...
Czy jest na 1-pozycji? Nie. To sprawdzam dalej...
Czy jest na 2-pozycji? Nie. To sprawdzam dalej...
Czy jest na 3-pozycji? Nie. I tu przestaję sprawdzać, bo sprawdziłem już rozmiar elementów (u mnie 4) i nie było tego o co ktoś prosił. No to odpowiadam: w tablicy nie znaleziono podanego klucza.