Çö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
4.093
Makaleler
7
Çözümler
8
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
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;
}
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.

Kelebek_1034

Decapat
Katılım
3 Ağustos 2020
Mesajlar
2.026
Makaleler
1
Çözümler
16
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;
}
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

Tectonic

Hectopat
Katılım
17 Temmuz 2016
Mesajlar
233
Çözümler
1
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.
 
KS
KS
çokdüşünenbiri
Katılım
12 Aralık 2015
Mesajlar
4.093
Makaleler
7
Çözümler
8
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;
}
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.
 
KS
KS
çokdüşünenbiri
Katılım
12 Aralık 2015
Mesajlar
4.093
Makaleler
7
Çözümler
8
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 ?
 

Tectonic

Hectopat
Katılım
17 Temmuz 2016
Mesajlar
233
Çözümler
1
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.
 
Yukarı