C ortalama hesaplama kodundaki hata nedir?

hitsizler

Centipat
Katılım
6 Aralık 2021
Mesajlar
227
Daha fazla  
Cinsiyet
Erkek
[CODE lang="c" title="Errorlu kod"]
int main() {

int toplamo2,toplamo,sago,dramo,tariho,coo,may1,may2,mas1,mas2,mato,edey1,edey2,edes1,edes2,edeo,ingy1,ingy2,ings1,ings2,ingo,singoo,muzy1,muzy2,muzs,muzo,fray1,fray2,fras1,frao,kimy1,kimy2,kims1,kims2,kimo,biyoy1,biyoy2,biyos1,biyos2,biyoo,singy1,singy2,sings1,diny1,diny2,dins1,dins2,dino,bedo,bedeny1,coy1,coy2,cos1,cos2,fizy1,fizy2,fizs1,fizo,dramy1,dramy2,sagy1,sagy2,sags1,tarihy1,tarihy2,tarihs1;

printf("ilk matematik yazilisi: ");
scanf("%d",&may1);
printf("ikinci matematik yazilisi:");
scanf("%d",&may2);
printf("Tahmini yada gerçek matematik sozlusunu giriniz:");
scanf("%d",&mas1);
printf("Tahmini yada gerçek 2. mat sozlusunu giriniz:");
mato=(mas1+mas2+may1+may2)/4;

printf("ilk edebiyat yazilisini giriniz:");
scanf("%d",&edey1);
printf("ikinci edebiyat yazilisini giriniz:");
scanf("%d",&edey2);
printf("Tahmini yada gerçek edebiyat sozlusunu giriniz:");
scanf("%d",&edes1);
printf("Tahmini yada gerçek 2. edebiyat sozlusunu giriniz:");
scanf("%d",&edes2);
edeo=(edey1+edey2+edes1+edes2)/4;

printf("ing 1. yazili.");
scanf("%d",&ingy1);
printf("ing 2. yazili:");
scanf("%d",&ingy2);
printf("ing 1. sozlu:");
scanf("%d",&ings1);
printf("ing 2. sozlu:");
scanf("%d",&ings2);
ingo=(ingy1+ingy2+ings1+ings2)/4;

printf("muzik 1. yazili:");
scanf("%d",&muzy1);
printf("muzik 2. yazili:");
scnaf("%d",&muzy2);
printf("muzik sozlusu:");
scanf("%d",&muzs);
muzo=(muzs+muzy1+muzy2)/3;

printf("kimya 1. yazili:");
scanf("%d",&kimy1);
printf("kimya 2. yazili:");
scanf("%d",&kimy2);
printf("kimya 1. sozlu:");
scanf("%d",&kims1);
printf("Kİmya 2. sozlu:");
scanf("%d",&kims2);
kimo=(kims1+kims2+kimy1+kimy2)/4;

printf("fransızca 1. yazili:");
scanf("%d",&fray1);
printf("fransızca 2. yazili:");
scanf("%d",&fray2);
printf("fransizca 1. sozlu:");
scanf("%d",&fras1);
frao=(fras1+fray1+fray2)/3;

printf("biyoloji 1. yazili:");
scanf("%d",&biyoy1);
printf("biyoloji 2. yazili:");
scanf("%d",&biyoy2);
printf("biyoloji 1. sozlu:");
scanf("%d",&biyos1);
printf("biyoloji 2. sozlu");
scnaf("%d",&biyos2);
biyoo=(biyoy1+biyoy2+biyos1+biyos2)/4;

printf("sing 1. yazili:");
scanf("%d",&singy1);
printf("sing 2. yazili");
scanf("%d",&singy2);
printf("sing sozlu:");
scanf("%d",&sings1);
singoo=(singy1+singy2+sings1)/3;

printf("din 1. yazili:");
scanf("%d",&diny1);
printf("din 2. yazili:");
scanf("%d",&diny2);
printf("din 1. sozlu:");
scanf("%d",&dins1);
printf("din 2. sozlu:");
scanf("%d",&dins2);
dino=(diny1+diny2+dins1+dins2)/4;

printf("beden 1. yazili:");
scanf("%d",&bedeny1);
bedo=bedeny1;

printf("cografya 1. yazili:");
scanf("%d",&coy1);
printf("cografya 2. yazili:");
scanf("%d",&coy2);
printf("cografya 1. sozlu:");
scanf("%d",&cos1);
printf("cografya 2. sozlu:");
scanf("%d",&cos2);
coo=(coy1+coy2+cos1+cos2)/4;

printf("tarih 1. yazili:");
scanf("%d",&tarihy1);
printf("tarih 2. yazili:");
scanf("%d",&tarihy2);
printf("tarih sozlusu:");
scanf("%d",&tarihs1);
tariho=(tarihy1+tarihy2+tarihs1)/3;

printf("fizik 1. yazili:");
scanf("%d",&fizy1);
printf("fizik 2. yazili:");
scanf("%d",&fizy2);
printf("fizik sozlu:");
scanf("%d",&fizs1);
fizo=(fizy1+fizy2+fizs1)/3;

printf("saglik 1. yazilisi:");
scanf("%d",&sagy1);
printf("saglik 2. yazilisi:");
scanf("%d",&sagy2);
printf("saglik sozlusu:");
scanf("%d",&sags1);
sago=(sags1+sagy1+sagy2)/3;

printf("drama 1.yazilisi:");
scanf("%d",&dramy1);
printf("drama 2. yazilisi:");
scanf("%d",&dramy2);
dramo=(dramy1+dramy2)/2;

toplamo=(mato*6)+(edeo*5)+(ingo*4)+(singoo*2)+(muzo*2)+(frao*2)+(fizo*2)+(kimo*2)+(dino*2)+(biyoo*2)+(bedo*2)+(coo*2)+(dramo*1)+(sago*1)+(tariho*2);
toplamo2=toplamo/37;

printf("Muhtemel karne ortalamaniz: %d",toplamo2);




















return 1;
}[/CODE]
@bitwise
Hatamın ne olduğunu söyler misiniz? Çok temelden başladım.
 
Böyle kod yazılmaz. Yeni başladığın için hevesini kırmak istemem yanlış anlama ancak daha pek bir şey öğrenmeden bu tarz ortalama hesaplama işlerine girmemeni öneririm. Döngüleri öğrendikten sonra burada yazmış olduğun ortalama 130 satır kodu 15-20 satırda halledersin. Mesela:

C:
#include <stdio.h>

int main(){
    int sayi;
    float toplam = 0;

    for(int i=0 ; i<5 ; i++){
        printf("%d. sayiyi giriniz : ", i+1);
        scanf("%d", &sayi);
       
        toplam = toplam + sayi;
    }

    printf("Girilen sayilarin ortalamasi : %f \n", toplam/5);
}

Kaynak

Ayrıca, bu tarz temel durumlar için Google kullanmanı öneririm. Çok daha hızlı yanıt alabilirsin.
 
Derleyicinin verdiği hatayı kopyalayıp Google'da aratırsan daha hızlı çözüm bulabilirsin böylece o hatayı tekrar yapmazsın ve daha başlangıcındasın buradaki kod sürekli kendisini tekrar ediyor zamanla geliştikçe 15-20 satırda halledebileceğini fark edersin.
 
Bazı satırlarda scanf yerine scnaf yazmışsın ve <stdio.h> kütüphanesini kodun başında eklememişsin. Ders ve genel ortalama değerlerini de float yerine int yaptığın için virgülleri hesaplamaz fakat kodun çalışmasına engel olmaz.
 
Sa gençler kodu düzelttim.
int main() {

int bosluk,toplamo2,toplamo,sago,dramo,tariho,coo,may1,may2,mas1,mas2,mato,edey1,edey2,edes1,edes2,edeo,ingy1,ingy2,ings1,ings2,ingo,singoo,muzy1,muzy2,muzs,muzo,fray1,fray2,fras1,frao,kimy1,kimy2,kims1,kims2,kimo,biyoy1,biyoy2,biyos1,biyos2,biyoo,singy1,singy2,sings1,diny1,diny2,dins1,dins2,dino,bedo,bedeny1,coy1,coy2,cos1,cos2,fizy1,fizy2,fizs1,fizo,dramy1,dramy2,sagy1,sagy2,sags1,tarihy1,tarihy2,tarihs1;

printf("ilk matematik yazilisi: ");
scanf("%d",&may1);
printf("ikinci matematik yazilisi:");
scanf("%d",&may2);
printf("Tahmini yada gerçek matematik sozlusunu giriniz:");
scanf("%d",&mas1);
printf("Tahmini yada gerçek 2. mat sozlusunu giriniz:");
scanf("%d",&mas2);
mato=(mas1+mas2+may1+may2)/4;

printf("ilk edebiyat yazilisini giriniz:");
scanf("%d",&edey1);
printf("ikinci edebiyat yazilisini giriniz:");
scanf("%d",&edey2);
printf("Tahmini yada gerçek edebiyat sozlusunu giriniz:");
scanf("%d",&edes1);
printf("Tahmini yada gerçek 2. edebiyat sozlusunu giriniz:");
scanf("%d",&edes2);
edeo=(edey1+edey2+edes1+edes2)/4;

printf("ing 1. yazili.");
scanf("%d",&ingy1);
printf("ing 2. yazili:");
scanf("%d",&ingy2);
printf("ing 1. sozlu:");
scanf("%d",&ings1);
printf("ing 2. sozlu:");
scanf("%d",&ings2);
ingo=(ingy1+ingy2+ings1+ings2)/4;

printf("muzik 1. yazili:");
scanf("%d",&muzy1);
printf("muzik 2. yazili:");
scanf("%d",&muzy2);
printf("muzik sozlusu:");
scanf("%d",&muzs);
muzo=(muzs+muzy1+muzy2)/3;

printf("kimya 1. yazili:");
scanf("%d",&kimy1);
printf("kimya 2. yazili:");
scanf("%d",&kimy2);
printf("kimya 1. sozlu:");
scanf("%d",&kims1);
printf("Kİmya 2. sozlu:");
scanf("%d",&kims2);
kimo=(kims1+kims2+kimy1+kimy2)/4;

printf("fransızca 1. yazili:");
scanf("%d",&fray1);
printf("fransızca 2. yazili:");
scanf("%d",&fray2);
printf("fransizca 1. sozlu:");
scanf("%d",&fras1);
frao=(fras1+fray1+fray2)/3;

printf("biyoloji 1. yazili:");
scanf("%d",&biyoy1);
printf("biyoloji 2. yazili:");
scanf("%d",&biyoy2);
printf("biyoloji 1. sozlu:");
scanf("%d",&biyos1);
printf("biyoloji 2. sozlu");
scanf("%d",&biyos2);
biyoo=(biyoy1+biyoy2+biyos1+biyos2)/4;

printf("sing 1. yazili:");
scanf("%d",&singy1);
printf("sing 2. yazili");
scanf("%d",&singy2);
printf("sing sozlu:");
scanf("%d",&sings1);
singoo=(singy1+singy2+sings1)/3;

printf("din 1. yazili:");
scanf("%d",&diny1);
printf("din 2. yazili:");
scanf("%d",&diny2);
printf("din 1. sozlu:");
scanf("%d",&dins1);
printf("din 2. sozlu:");
scanf("%d",&dins2);
dino=(diny1+diny2+dins1+dins2)/4;

printf("beden 1. yazili:");
scanf("%d",&bedeny1);
bedo=bedeny1;

printf("cografya 1. yazili:");
scanf("%d",&coy1);
printf("cografya 2. yazili:");
scanf("%d",&coy2);
printf("cografya 1. sozlu:");
scanf("%d",&cos1);
printf("cografya 2. sozlu:");
scanf("%d",&cos2);
coo=(coy1+coy2+cos1+cos2)/4;

printf("tarih 1. yazili:");
scanf("%d",&tarihy1);
printf("tarih 2. yazili:");
scanf("%d",&tarihy2);
printf("tarih sozlusu:");
scanf("%d",&tarihs1);
tariho=(tarihy1+tarihy2+tarihs1)/3;

printf("fizik 1. yazili:");
scanf("%d",&fizy1);
printf("fizik 2. yazili:");
scanf("%d",&fizy2);
printf("fizik sozlu:");
scanf("%d",&fizs1);
fizo=(fizy1+fizy2+fizs1)/3;

printf("saglik 1. yazilisi:");
scanf("%d",&sagy1);
printf("saglik 2. yazilisi:");
scanf("%d",&sagy2);
printf("saglik sozlusu:");
scanf("%d",&sags1);
sago=(sags1+sagy1+sagy2)/3;

printf("drama 1.yazilisi:");
scanf("%d",&dramy1);
printf("drama 2. yazilisi:");
scanf("%d",&dramy2);
dramo=(dramy1+dramy2)/2;

toplamo=(mato*6)+(edeo*5)+(ingo*4)+(singoo*2)+(muzo*2)+(frao*2)+(fizo*2)+(kimo*2)+(dino*2)+(biyoo*2)+(bedo*2)+(coo*2)+(dramo*1)+(sago*1)+(tariho*2);
toplamo2=toplamo/37;
printf("Muhtemel karne ortalamaniz: %d",toplamo2);

scanf("%d",&bosluk);



















return 1;
}
Hocam ben bu kadar bilmiyorum da bu kodlar çok gelişmiş kodlar gibi durmuyor mu acaba ?
Az gelişmiş kodlara bile bu kodlardan daha çok gelişmiş olabilir daha yeni başladım 1 ay falan oldu.
Bazı satırlarda scanf yerine scnaf yazmışsın ve <stdio.h> kütüphanesini kodun başında eklememişsin. Ders ve genel ortalama değerlerini de float yerine int yaptığın için virgülleri hesaplamaz fakat kodun çalışmasına engel olmaz.

Virgül hiç problem çıkarmadı scnaf yazdığımda zaten hatayı söylüyordu bu sefer söylemedi bende 1 saat fala uğraşmıştım halbuki IDE ile alakalı bir şeymiş code: Blocks ta hata vermedi bir de çok temel başladım <studio.h> ne işe yarıyor bilmiyorum.
Daha duzgun ogrenmen lazim cok uzun yazmissin.
Daha yeni başladım floatı dün öğrendim.
 
Son düzenleme:
Yazacağımız bazı fonksiyonlar, makrolar ya da tipler, birden fazla uygulamada bize gerekli olabilir. Örneğin verilen sayıların ortalamasını alarak bu değeri geri döndüren bir fonksiyon yazdığımızı düşünelim. Böyle bir fonksiyon bize birbirinden bağımsız birkaç uygulamada gerekli olabilir. Bu durumda bu fonksiyona ihtiyacımız olan her uygulamada, aynı kodu yeniden yazmak yerine bir kütüphane oluşturarak bu fonksiyonu oluşturduğumuz bu kütüphaneye yerleştiririz ve gereksinim duyduğumuz tüm uygulamalarda kullanabiliriz.

Kütüphaneler, derlenmiş dosyalardır. Kütüphane oluştururken, projemize C uzantili bir kaynak kod dosyası ve h uzantılı bir başlık dosyası ekleriz. Kaynak kod dosyasında, kütüphanemize ekleyeceğimiz fonksiyonların tanımlamaları yapılır. Başlık dosyasında ise bu fonksiyonlara ilişkin prototip bildirimleri yapılır. Başlı kdosyaları aynı zamanda makro bildirimlerini, tip bildirimlerini vb içerebilir. Kütüphane projemizi derlediğimizde, kütüphanemizin içerisindeki tüm tanımlamalar, obj modülü içerisine yazılır. 'obj' uzantılı dosyalar, derleyicilerin çıktı dosyalarıdır.

Kaynak.
 

Geri
Yukarı