Şimdi Ara

c'de değişken türü karmaşası(şu acemiye bi yardım)!!!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
7
Cevap
0
Favori
459
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • arkadaşlar merhaba.

    istenilen program kısaca şu.kullanıcıdan 5 basamaklı bir sayi girmesi istenecek.daha sonra kullanıcının girdiği o sayı basamaklarına ayrılacak.örnek:kullanıcı 43499 girdi mesela sonuc su olacak: 4 3 4 9 9 gibi.ben söyle bir program yazdim.

    #include <stdio.h>

    int main(void)

    {

    int sayi,a,b,c,d,e,f,k,x;

    printf("5 basamakli bir sayi giriniz.\n");

    scanf("%d",&sayi);

    a = sayi / 10000;

    b = sayi % 10000;

    c = b / 1000;

    d = b % 1000;

    e = d / 100;

    f = d % 100;

    k = f / 10;

    x = sayi % 10;

    printf("%d %d %d %d %d\n",a,c,e,k,x);

    return 0;

    }
    ama işte integer olduu için belli bi sayiya kadar doru oluyo 30 küsür binden sonra program saçmalıyor.float double filan tipleri değiştirmeyi denedim sürekli program hata verdi.içinden çıkamadım.sadece cevabı deil kısaca mantığını da açıklarsanız çok iyi olur.şimdiden çok saolun arkadaşlar.hepinize kolay gelsin...







  • long int ya da unsigned long int(negatif sayilar yok) yap.ilki +- 2 milyar küsur digeri de 2 kati...



    < Bu mesaj bu kişi tarafından değiştirildi tamers -- 4 Mart 2006; 14:26:32 >
  • bisi yapmana gerek yok gayet gusel calisiyor program. sen hangi compiler kullaniyosun?. Bu arada unsigned int 2 ussu 32 ye kadar alir normal int 2 ussu 16 da kalir...
  • ya arkadaşlar gerçekten çok saolun.h3x arkadaşımın da dediği gibi compilera göre değişiyomuş bilmiordum.ben epi'de yaptım hep hata verdi.Dev Cde denedim bu haliyle oldu.epide unsigned long int yazmama rağmen yine de olmadı.herhalde o da epinin sorunu benim değil.ama şimdi kafama şu takıldı.dev cde bu haliyle olması saçma değil mi.intin aralığı kapsamadığı halde sonucu gösteriyor.çok saolun tekrardan arkadaşlar...
  • kardes unsigned int 4 milyar kusure kadar normal int 2 milyar kusure kadar gider rahat rahat kapsiyor yani icin rahat olsun:)
  • C'de değişkenlerin uzunlukları derleyiceden derleyice farklılık gösterebilir. Normalde int maksimum alacağı değer 2 byte dır. Unsigned olduğu zaman 32767 falan maksimum değer alır. Eğer unsigned olursa 65535 olur. Ama bazı derleyiceler int'i 2 değil 4 byte tutarlar.
  • sayinin tipini degistirdigin zaman butun komutlarda değiştirmeliisn sanırım bu yuzden hata verşyo int i float yaptıgın zaman printf("%d") degil printf("%f") yapmalısın ok belki bu sorununu cozer
    take care
  • 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.