2-amaliy topshiriq!


Download 1.14 Mb.
bet6/16
Sana21.11.2023
Hajmi1.14 Mb.
#1790449
1   2   3   4   5   6   7   8   9   ...   16
Bog'liq
2-amaliy topshiriq!

for (int i = 0; i < n; i++) // siklda barcha elementlarni qarab chiqadi
{
if (k[i] == key) // agar key qiymatli element topilgan holatda return i; // uning indeksi qaytariladi
}
return -1; // agar topilmagan holda -1 qaytariladi
}
int main()
{
int k[8]; // 8 elementdan iborat massiv yaratish int point; // qidirish natijasi bo'lgan element indeksi
// massiv elementlarini kiritish for (int i = 0; i<8; i++)
{
printf("?'k[%d] kiriting: ", i); scanf("%d", &k[i]);
}
// qidirishni amalga oshirish point = search(k, 8, 3); if (point == -1)
printf("Element topilmadi!\n"); else
printf("%d indeksli element 3 ga teng", point); getchar(); getchar(); return 0; }
Chiziqli qidirishda transpozitsiya usuli. Bu usulda har bir so’rovda qidirilayotgan element o’rni oldingi element bilad almashtiriladi. Natijada tez-tezdan qidiriladigan element tez topilishini ta’minlaydi.
Masala 2. Massivdagi qiymat 3 ga teng elementni topish.
#include
int search(int *k, int n, int key)
{
int temp;
for (int i = 0; i{
if (k[i] == key) // agar key qiymatli element topilgan holatda,
{
if (i == 0) // agar indeks 0 ga teng bo'lsa, return i; // indeks qaytariladi
temp = k[i]; // olding element bilan o'rni almashtiriladi k[i] = k[i - 1]; k[i - 1] = temp; return i;
}
} return -1;
}
int main()
{ int k[8]; int point;
for (int i = 0; i<8; i++)
{
printf("?'âåäèòå k[%d]: ", i); scanf("%d", &k[i]);
}
// qidirish 6 marta qaytalanadi (transpozitsiya hisobga olingan holda) for (int j = 0; j < 6; j++)
{
point = search(k, 8, 3); // qidirish funksiyasini chaqirish if (point == -1)

Download 1.14 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   16




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling