Şimdi Ara

C de dizi eleman sayısı bulma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
27.364
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Klavyeden girilen karakterlerin içerisinden rakamları alan ve tüm rakamların toplamını veren program yazmaya calısıyorum yalnız dizi tanımlamasını nasıl yaparım ?dizi eleman sayısını nasıl bulurum ? mesela klavyeden girdim ; ab42werq342353wqs şeklinde başta kac adet giriliceği belli değil kullanıcının girdiği adet kadar işlem yaptırıcam
    dizi[0]=a ; dizi[1]=b .. şeklinde nası yaparım bide for döngüsünde for(i=0 ; i<=(dizi eleman sayısı); i++) { işlemler } dizi eleman sayısı yerine nası bişey yazabilirm derdimi anlatabildiysem ne mutlu



  • Yapay Zekanın Yanıtı

    C Dilinde Dizi Eleman Sayısı Bulma

    C dilinde dizi eleman sayısını bulmak için kullanılabilecek bir yöntem, dizinin son elemanının adresini bulmaktır. Dizinin son elemanı, dizinin eleman sayısından bir eksik indisli elemandır. Bu nedenle, dizinin son elemanının adresini bulduktan sonra, bu adresten dizinin başlangıç adresini çıkararak dizinin eleman sayısını bulabilirsin.

    Dizinin son elemanının adresini bulmak için, dizi adının sonuna bir yıldız işaretinin (*) eklenmesi gerekir. Bu işaret, dizinin adresini döndürür. Örneğin, dizi adında bir dizin varsa, &dizi[0] ifadesi dizinin ilk elemanının adresini, &dizi[n-1] ifadesi ise dizinin son elemanının adresini döndürür.

    Dizinin başlangıç adresini bulmak için ise, dizi adının önüne bir yıldız işaretinin (*) eklenmesi gerekir. Örneğin, dizi adında bir dizin varsa, *dizi ifadesi dizinin başlangıç adresini döndürür.

    Dizinin eleman sayısını bulmak için, dizinin son elemanının adresinden dizinin başlangıç adresini çıkarman ve sonucu bir artırman gerekir. Bu işlem, aşağıdaki formülle ifade edilebilir:

    eleman_sayisi = &dizi[n-1] - *dizi + 1

    Bu formülü kullanarak, eleman sayısı belli olmayan bir dizinin eleman sayısını bulabilirsin.

    Yapay Zekanın Yanıtını Genişlet
  • Strlen fonksiyonu olmasi lazim ama string(string yada string.h include etmen gerekebilir) kutuphanesini dahil etmen gerekeblir. int x=strlen(dizi);

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • stabil131 S kullanıcısına yanıt
    10 elemanlı dizi tanımı bu şekilde yapılmıs ;
    #define BOYUT 10
    void main() {

    int dizi[BOYUT];

    }
    peki eleman sayısı belirtilmeyenin nası olur direk dizi[] mi dicem
  • hakael37 H kullanıcısına yanıt
    C'de eleman sayısı belirtilmeyen dizi olmaz.

    Bi de, char dizileri null-terminated olur yani son karakterleri 0dır, bu sayede büyükçe bir dizi alıp, içinde daha küçük bir string tutabilirsin.
  • sizeof rahatlıkla işini görür mesela:

    - sizeof dizinin tuttuğu toplam alanı byte cinsinden döndürür bu durumda sunu yaparsak dizinin kaç elemanlı olduğunu bulabilriz toplam dizi boyutunu tür boyutuna bölersek bulabilriz yani mesela toplam 10 byte'lık bir dizimiz var bu dize short türünden diyelim short 2 byte'dır 10/2 = 5 elemanlı olduğunu bulduk örnek:

     
    short dizi[] = {10, 20, 30, 40, 50};

    int eleman = (sizeof dizi / sizeof *dizi);

    printf("Eleman sayisi = %d\n", eleman);


    yukarda sizeof *dizi yani * operatörünü koyduğumda dizinin tür boyutunu döndürür yani short türündeydi short'da 2 byte ozaman 2 döndürecek bi diğer örnek:

     
    int film[5] = {100, 200, 300, 400, 500};

    int eleman = (sizeof(film) / sizeof(int));

    printf("toplam %d byte\n", sizeof(film));
    printf("degisken turu %d byte\n", sizeof(int));
    printf("eleman sayisi..: %d\n", eleman);

    < Bu ileti mini sürüm kullanılarak atıldı >




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.