Çözüldü C kodu yanlış sonuç veriyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
12 Aralık 2015
Mesajlar
6.665
Makaleler
9
Çözümler
11
Daha fazla  
Sistem Özellikleri
i7 10750H || GTX 1660 Ti 6 GB Mobile || 2x16 GB RAM || 512 GB NVMe M.2 SSD || 1080p 144 Hz IPS Panel || Windows 11-macOS Big Sur || Acer Nitro 5 AN515-55 2020 ||
Cinsiyet
Erkek
Meslek
Öğrenci
C:
#include <stdio.h>

int main() {
   
    int a,b,c,d,e,f,g,h,k,l;
    int toplam=a+b+c+d+e+f+g+h+k+l;
   
    printf("Toplanilacak 10 sayi giriniz...\n");
   
    printf("Birinci sayiyi giriniz:");
    scanf(" %d",&a);
   
    printf("Ikinci sayiyi giriniz:");
    scanf(" %d",&b);  
   
    printf("Ucuncu sayiyi giriniz.");
    scanf(" %d",&c);
   
    printf("Dorduncu sayiyi giriniz:");
    scanf(" %d",&d);
   
    printf("Besinci sayiyi giriniz:");
    scanf(" %d",&e);
   
    printf("Altinci sayiyi giriniz:");
    scanf(" %d",&f);
   
    printf("Yedinci sayiyi giriniz:");
    scanf(" %d",&g);
   
    printf("Sekizinci sayiyi giriniz:");
    scanf(" %d",&h);
   
    printf("Dokuzuncu sayiyi giriniz:");
    scanf(" %d",&k);
   
    printf("Onuncu sayiyi giriniz:");
    scanf(" %d",&l);
   
    printf("10 sayi girdiniz.\n");
    printf("Sayilar toplaniyor\n");
    printf("Toplam: %d ",toplam);
   
    return 0;
}

Yazılan 10 sayının toplamını bulan bir kod yazdım ancak Dev C++ ile değerler doğru girilse dahi çok anlamsız ve büyük bir sonuç çıkıyor. Sorunun nerede olduğunu tespit edemedim.

1638918114928.png
 
Çözüm
[CODE lang="c" title="Kod"]#include <stdio.h>

int main() {

int a,b,c,d,e,f,g,h,k,l;

printf("Toplanilacak 10 sayi giriniz...\n");

printf("Birinci sayiyi giriniz:");
scanf(" %d", &a);

printf("Ikinci sayiyi giriniz:");
scanf(" %d", &b);

printf("Ucuncu sayiyi giriniz.");
scanf(" %d", &c);

printf("Dorduncu sayiyi giriniz:");
scanf(" %d", &d);

printf("Besinci sayiyi giriniz:");
scanf(" %d", &e);

printf("Altinci sayiyi giriniz:");
scanf(" %d", &f);

printf("Yedinci sayiyi giriniz:");
scanf(" %d", &g);

printf("Sekizinci sayiyi giriniz:");
scanf(" %d", &h);

printf("Dokuzuncu sayiyi giriniz:");
scanf(" %d", &k);

printf("Onuncu sayiyi giriniz:");
scanf(" %d", &l);

printf("10 sayi girdiniz.\n");
printf("Sayilar toplaniyor\n");

int toplam=a+b+c+d+e+f+g+h+k+l;

printf("Toplam: %d ",toplam);

return 0;
}[/CODE]
Pek düşünmeye gerek yok. Toplam ifadesini kullanıcıdan değer aldıktan sonra oluşturmalısın. Kullanıcıdan almadan sayıları toplayamaz değil mi? En başta sayıları ilklendirmeden hepsinin toplamını bir ifadede tutmuşsun. Sonra bu toplamı güncellemeden yazdırmaya çalışıyorsun. Haliyle de alakasız sayılar geliyor. Kod yazımı da pek güzel değil ancak yenisin belli ki. Şimdilik mantığı kavrasan yeterli, sadece hatalı sonuç almana sebep olan kısmı değiştirdim.
[CODE lang="c" title="Kod"]#include <stdio.h>

int main() {

int a,b,c,d,e,f,g,h,k,l;

printf("Toplanilacak 10 sayi giriniz...\n");

printf("Birinci sayiyi giriniz:");
scanf(" %d", &a);

printf("Ikinci sayiyi giriniz:");
scanf(" %d", &b);

printf("Ucuncu sayiyi giriniz.");
scanf(" %d", &c);

printf("Dorduncu sayiyi giriniz:");
scanf(" %d", &d);

printf("Besinci sayiyi giriniz:");
scanf(" %d", &e);

printf("Altinci sayiyi giriniz:");
scanf(" %d", &f);

printf("Yedinci sayiyi giriniz:");
scanf(" %d", &g);

printf("Sekizinci sayiyi giriniz:");
scanf(" %d", &h);

printf("Dokuzuncu sayiyi giriniz:");
scanf(" %d", &k);

printf("Onuncu sayiyi giriniz:");
scanf(" %d", &l);

printf("10 sayi girdiniz.\n");
printf("Sayilar toplaniyor\n");

int toplam=a+b+c+d+e+f+g+h+k+l;

printf("Toplam: %d ",toplam);

return 0;
}[/CODE]
Pek düşünmeye gerek yok. Toplam ifadesini kullanıcıdan değer aldıktan sonra oluşturmalısın. Kullanıcıdan almadan sayıları toplayamaz değil mi? En başta sayıları ilklendirmeden hepsinin toplamını bir ifadede tutmuşsun. Sonra bu toplamı güncellemeden yazdırmaya çalışıyorsun. Haliyle de alakasız sayılar geliyor. Kod yazımı da pek güzel değil ancak yenisin belli ki. Şimdilik mantığı kavrasan yeterli, sadece hatalı sonuç almana sebep olan kısmı değiştirdim.
 
Çözüm
a,b,c... variable'larını define'ladınız ama daha initialize etmediniz, yani memory'de a,b,c.. için yer ayrıldı ama değerleri compiler tarafından rastgele bir şekilde atandı. Hangi değerlerin atandığı compiler'dan compiler'a değişir, sizin burada yapmanız gereken toplamı a,b,c.. değerlerini user'dan aldıktan sonra initialize etmeniz.
 
[CODE lang="c" title="Kod"]#include <stdio.h>

int main() {

int a,b,c,d,e,f,g,h,k,l;

printf("Toplanilacak 10 sayi giriniz...\n");

printf("Birinci sayiyi giriniz:");
scanf(" %d", &a);

printf("Ikinci sayiyi giriniz:");
scanf(" %d", &b);

printf("Ucuncu sayiyi giriniz.");
scanf(" %d", &c);

printf("Dorduncu sayiyi giriniz:");
scanf(" %d", &d);

printf("Besinci sayiyi giriniz:");
scanf(" %d", &e);

printf("Altinci sayiyi giriniz:");
scanf(" %d", &f);

printf("Yedinci sayiyi giriniz:");
scanf(" %d", &g);

printf("Sekizinci sayiyi giriniz:");
scanf(" %d", &h);

printf("Dokuzuncu sayiyi giriniz:");
scanf(" %d", &k);

printf("Onuncu sayiyi giriniz:");
scanf(" %d", &l);

printf("10 sayi girdiniz.\n");
printf("Sayilar toplaniyor\n");

int toplam=a+b+c+d+e+f+g+h+k+l;

printf("Toplam: %d ",toplam);

return 0;
}[/CODE]
Pek düşünmeye gerek yok. Toplam ifadesini kullanıcıdan değer aldıktan sonra oluşturmalısın. Kullanıcıdan almadan sayıları toplayamaz değil mi? En başta sayıları ilklendirmeden hepsinin toplamını bir ifadede tutmuşsun. Sonra bu toplamı güncellemeden yazdırmaya çalışıyorsun. Haliyle de alakasız sayılar geliyor. Kod yazımı da pek güzel değil ancak yenisin belli ki. Şimdilik mantığı kavrasan yeterli, sadece hatalı sonuç almana sebep olan kısmı değiştirdim.
Anladım. Yeni başladım C diline. Teşekkürler.
a,b,c... variable'larını define'ladınız ama daha initialize etmediniz, yani memory'de a,b,c.. için yer ayrıldı ama değerleri compiler tarafından rastgele bir şekilde atandı. Hangi değerlerin atandığı compiler'dan compiler'a değişir, sizin burada yapmanız gereken toplamı a,b,c.. değerlerini user'dan aldıktan sonra initialize etmeniz.
Hatamı anladım, teşekkürler.
 
Bu arada söylediğinize göre C dilini çalışıyorsunuz, dosya uzantınız neden .cpp? Uygun bir C ortamında çalışsanız daha mantıklı olmaz mı?
Hiçbir bilgim yok. YouTube üzerinden takip ettiğim kanal Dev C++ ile bu şekilde anlatım yaptığı için de ben de direkt o şekilde devam etmekteyim. Sizin öneriniz nedir ?
 
Hiçbir bilgim yok. YouTube üzerinden takip ettiğim kanal Dev C++ ile bu şekilde anlatım yaptığı için de ben de direkt o şekilde devam etmekteyim. Sizin öneriniz nedir ?
Biraz araştırdım ve düzeltmede bulunayım, dosya uzantısı ve ortamın çok bir alakası yok. Ben sadece .cpp 'nin C++ dosyası olduğunu biliyordum ve C dilini .cpp dosyasında yazmanızı ilginç bulmuştum. İnternetten biraz baktım sıkıntı değilmiş açıkçası, ama yine de dilerseniz dosyanın uzantısını .c yapabilirsiniz, .cpp => C++ oluyor.
Bır sıkıntı yok yani.
 

Geri
Yukarı