Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C'de fonksiyonlar


Chewy

Öne çıkan mesajlar

Önceki fonksiyon tanımın return hariç doğru. O kısmı
return avg;
yap bence şimdilik hata yaptığın yeri main de

main

int main(void)
{
int num1,num2,num3,num4,disp;

printf("Enter the numbers: ";
scanf("%d %d %d %d",&num1,&num2,&num3,&num4);

**** disp=topla(num1,num2,num3,num4); *****

printf("The numbers are %d %d %d %d || average is %d %f",num1,num2,num3,num4,disp);

return 0;

}


Şuna baktıktan sonra önceki msg da yazdığımı oku anlıcaksın
Link to comment
Sosyal ağlarda paylaş

Ayrı ayrı yaptım şöle mesela çıkan sonuc saçma :S


#include<stdio.h>
int topla(int sum)
{
int num1,num2,num3,num4;

sum=num1+num2+num3+num4;

}

int ortalama(int avg)
{
int num1,num2,num3,num4;
avg=(num1+num2+num3+num4)/4;
}

int main(void)
{
int num1,num2,num3,num4,sum=0,avg=0;

printf("Enter the numbers:");
scanf("%d %d %d %d",&num1,&num2,&num3,&num4);

sum=topla(sum);
avg=ortalama(avg);

printf("Sum and avg are %d %d",sum,avg);

return 0;

}
Link to comment
Sosyal ağlarda paylaş

Tanımladığın herhangi bir değişikenin, tanımlanma yerine göre bir scope u mevcut.

Senin tanımladığın sum1,sum2,sum3,sum4 değişikenleri main metodunda tanımlı, diğer functionların o değişkenlerden haberi yok.

Madem böyle yazıcaksın, bütün metod lar tarafından kullanılmasını istediğin değişkenleri global tanımla.

Ayrıca logic yanlış code un da.


#include<stdio.h>
int topla(int sum) // bu metod aldıgı tek argumanı ne yapacak?
{
int num1,num2,num3,num4;

sum=num1+num2+num3+num4;

//nerde return?

}

int ortalama(int avg) // burdaki metoda neden avg yi geciyorsun?
{
int num1,num2,num3,num4;
avg=(num1+num2+num3+num4)/4;

// nerde return statement

}

int main(void)
{
int num1,num2,num3,num4,sum=0,avg=0;

printf("Enter the numbers:";
scanf("%d %d %d %d",&num1,&num2,&num3,&num4);

sum=topla(sum);
avg=ortalama(avg);

printf("Sum and avg are %d %d",sum,avg);

return 0;

}


Global değişiken tanımla, metod ların void olsun ve metodlara herhangi bir arguman geçme, eğer ki istenilen spesifik bir ödev ise. Eğer ödev değilse hiç bir zaman böyle çalışma, zorunlu olmadıkça global değişken kullanma.

Bazı şeyler oturmamış kafanda, function nedir nasıl çalışır,böyle böyle öğreneceksin, çalışmaya devam.
Link to comment
Sosyal ağlarda paylaş

Gladmir said:

Tanımladığın herhangi bir değişikenin, tanımlanma yerine göre bir scope u mevcut.

Senin tanımladığın sum1,sum2,sum3,sum4 değişikenleri main metodunda tanımlı, diğer functionların o değişkenlerden haberi yok.

Madem böyle yazıcaksın, bütün metod lar tarafından kullanılmasını istediğin değişkenleri global tanımla.

Ayrıca logic yanlış code un da.


#include<stdio.h>
int topla(int sum) //burda ne almam gerekiyor?
{
int num1,num2,num3,num4;

sum=num1+num2+num3+num4;

//nerde return?

}

int ortalama(int avg) //burdada?
{
int num1,num2,num3,num4;
avg=(num1+num2+num3+num4)/4;

// nerde return statement

}

int main(void)
{
int num1,num2,num3,num4,sum=0,avg=0;

printf("Enter the numbers:";
scanf("%d %d %d %d",&num1,&num2,&num3,&num4);

sum=topla(sum);
avg=ortalama(avg);

printf("Sum and avg are %d %d",sum,avg);

return 0;

}


Global değişiken tanımla, metod ların void olsun ve metodlara herhangi bir arguman geçme, eğer ki istenilen spesifik bir ödev ise. Eğer ödev değilse hiç bir zaman böyle çalışma, zorunlu olmadıkça global değişken kullanma.

Bazı şeyler oturmamış kafanda, function nedir nasıl çalışır,böyle böyle öğreneceksin, çalışmaya devam.
Link to comment
Sosyal ağlarda paylaş

int topla(int sum) //burda ne almam gerekiyor?

abi sen burda parametler olarak num1,num2,num3,num4 almak gerekiyorki fonksiyonun mainden gönderilen değerlerin işlemini yapabilsin. yani
int topla(int num1, int num2 int num3, int num4) yapman gerekiyor sonrada bu fonksiyonun içine sum = num1+num2+num3+num4 diyip en son return sum; diyerek toplamını return ettirmen gerekli. Fakat sum=topla(sum); (mainde ki) burası da yanlış, çünkü bu kodla senin fonksiyona gönderdiğin parametre sum parametresi ama senin num1,2,3,4 parametrelerini göndermen lazım, yani şöyle sum=topla(num1, num2, num3, num4) Bir de fonksiyonun içinde num1,2,3,4'ü tekrar tanımlamana gerek yok, onlar zaten parametre olarak mainden alınıyor.

int ortalama(int avg) //burdada?
burada da aynı şekilde int ortalama(int num1, int num2, int num3, int num4) yapıp avg = (num1+num2+num3+num4)/4; yapıp ardından da avg yi return ettirmen lazım. Ve mainde de yine aynı şekilde avg=ortalama(avg); yenine avg = ortalama(num1, num2, num3, num4) yapman gerekiyor.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...