Genel Bilgi|  Program Kontrol|  Fonksiyonlar|  Arrayler |  Pointerlar |  Link List |  String| Structurelar |  Input/Output| Yeni Baslayanlar |  Email|

TurkceC yi Ara
  
Array Tanimlama
Program Ornekleri
Fonksiyonlara Gonderme
Array Siralama
Durum Calismasi
Array Arama
Multi Array

Birden cok subscripti olan arrayler
C'de ki arrayler birden cok subscriptlere sabip olabilirler.En yagin coklu subscript kullanimi sira ve kolonklarin bilgilerini iceren degerlerin gosterilmesidir. Belirli bir masa(table) elementini belirtmek icin iki adet subscript belirlemek zorundayiz.Birincisi elementlerin sirasini ikincisi de elementlerin kolonlarini gostermelidir.Iki adet subscript gerektiren masalar veya arrayler double-subscripted arrays olarak bilinirler.(Ikili Subscripts kullanarak bir sinifda ki ogrencilerin uc sinav toplamini alip, her ogrenci icin genel ortalama ve sinifin en yuksek ve dusuk notunu hesaplayan programi gormek icin tiklayin)Genelde, m sirali ve n kolonlu bir arraye m-by-n array denir. Daha once de bahsettigimi gibi en yaygin array arama methodlarindan bir de binary search dur. Assagida yazacagimiz programda sira ve kolon aramada bu arama methodunu kullanacagiz.

/*Binary Searchle Array Arama*/

#include

#define SIZE 15

int binarySearch(int [], int, int, int);

void BaslikYaz(void);

void SiraYaz(int [], int, int, int);

 

main()

{

   int a[SIZE], i, kilit, sonuc;

   for(i = 0; i <= SIZE - 1; i++_

     a[i] = 2 * i;

   printf("0 ila 28 arasi bir numara gir: ");

   scanf("%d",  &kilit);

   BaslikYaz();

   sonuc = binarySearch(a, kilit, 0, SIZE - 1);

   if(sonuc != -1)       /*  ( != ) sembolur esit degilse demektir */

       printf("\n%d array element %d un icinde bulundu\n", kilit, sonuc);

   else

         printf("\n%d bulunmadi\n", kilit);

    return(0);

}

int binarySearch(int b[], int  arananKilit, int dusuk, int yuksek)

{

   int orta;

   while(dusuk <= yuksek)

   {

     orta = (dusuk + yuksek) / 2;

     SiraYaz(b, dusuk, orta, yuksek);

     if(arananKilit == b[orta])

      return(orta);

    else if(arananKilit < b[orta])

         yuksek = orta -1;

     else

          dusuk = orta + 1;

   }

   return(-1)   /*arananKilit bulunamadi*/

}

void BaslikYaz(void)

{

   int i;

  printf("\nSubscripts:\n");

  for(i = 0; i <=SIZE -1; i++)

      printf("%3d ", i);

  printf("\n");

  for(i = 1; i<= 4 * SIZE, i++)

    printf("-");

  printf("\n");

}

void SiraYaz(int b[], int dusuk, int orta, int yuksek)

{

   int i;

   for(i = 0; i<= SIZE -1; i++)

    if(i < dusuk  || i > yuksek)        /*   ||   veya demektir*/

         printf("        ");

   else if("i  = = orta)

      printf("%3d*", b[i]);    /* orta degeri isaretle*/

   else

         printf("%3d ", b[i]);

   printf("\n");

}

 

Programin ciktisi:


Anket
Sitemizi Nasil Buldunuz?
  Cok Faydali
  Eksikleri var
  idare eder
  Ilerde Cok daha iyi olacak
  Berbat
  Cok kotu

isupper, islower, toupper, tolower kullanimi eklendi.25 Ocak Saat 08:15 am


String deger degistirme fonksiyonlari eklendi.25 Ocak Saat 09:00 am



atof, atoi, atol kullanimi eklendi.25 Ocak Saat 09:15 am