Şimdi Ara

C tek sayı çift sayı programı 5milyardan büyük bir sayı için hatalı çalışıyor

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
7
Cevap
0
Favori
929
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Rastgele sayılar giriyorum tek mi çift mi oldugunu gösteriyor. Fakat 5milyar gibi bir sayı girersem tek diyor. Nasıl düzeltebilirim acaba ?

     C tek sayı çift sayı programı 5milyardan büyük bir sayı için hatalı çalışıyor



  • değişenin boyutunu gecememsi lazım 5 milyarın ama sen float faln da tanımlamışsın ondan olabilir birde
    bir sayını tek mi çift miolduğunu kontrol etmek için girilen sayının 2 modu alırsan daha iyi olur .

    if(sayi%2==0)
    {
    çift gibi
    }
  • Double yapsaydım daha büyük sayıları kontrol edebilirdim yani ? doğru anlamış mıyım ?

    Ayrıca mod bilmiyorum henüz hocam
  • modu öğrenmiş oldun :)
  • Teşekkür ederim hocam
  • Noktalı sayılara mod işlemi uygulanamaz bu bir.
    Double tipi büyük sayıları almak için uygun değildir bu da iki. double ve long double tipleri sadece noktalı kısmın duyarlılığını arttırmak için kullanılabilir. Büyük tamsayılar için "long long" kullanabilirsiniz. Derleyiciniz 64 bit ise long da olur..
  • Benim merak ettiğim bişey var. Programı çalıştırıp herhangi bir değer girdikten sonra "Hocam imkansızı başarıp tek sonucunu buldum" dediği oldu mu hiç

    k=i/2;
    c=i/2;
    i=k-c; //k eşit c olduğundan sonuç i = 0'dır.
    if(i==0) //i zaten sıfır olduğundan yazdığın if dallanmasından sonuç hiç bir zaman false(tek) çıkmaz.

     
    #include <stdio.h>
    #include <conio.h>

    int main(){
    int i;

    printf("Sayi giriniz: ")
    scanf("%d",&i);

    if(i%2==0)
    printf("\nCift sayi.");
    else
    printf("\nTek sayi.");
    getch();

    return 0;
    }


    4.3 milyar üzerindeki rakamlar için 64 bit'lik adresleme gerekiyor. Önce bi standartları öğren sonra long long'lara geçersin




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.