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


Öne çıkan mesajlar

Mesaj tarihi:
Şöyle bir şey yaptım hatam nerde? Neden calısmıyor?


#include<stdio.h>
int multiple(int num1,int num2)
{
while(num2%num1==0)
{
printf("Second number is a multiple of the first");

}
printf("Second number is not a multiple of the first");
return(multiple);

}

int main(void)
{

int num1,num2,disp;

printf("Enter two integer: ");
scanf("%d %d",&num1,&num2);

disp=multiple(disp);

printf("%d",disp);

return 0;

}
Mesaj tarihi:
burda fonksiyonu tanimlarken iki tane variable alir demissin.
int multiple(int num1,int num2)

sonra burda fonksiyonu cagirirken sadece bi tane gondermissin
multiple(disp)
Mesaj tarihi:
printf("Second number is not a multiple of the first");
return(multiple);

burasımı sorun?

abi call ederken return(fonksiyon ismi)

bu sekilde diil mi?
Mesaj tarihi:
aquila said:

burda fonksiyonu tanimlarken iki tane variable alir demissin.
int multiple(int num1,int num2)

sonra burda fonksiyonu cagirirken sadece bi tane gondermissin
multiple(disp)


int multiple(disp)//buraya tek bisey dedim

int num1, num2;

yapsam?
Mesaj tarihi:
return(multiple) ile fonksiyonun kendini returnlemeye çalışıyorsun, num1,num2 olarak main içinde belirlediğin değişkenlere atama yapmana rağmen, fonksiyon içine göndermiyorsun, disp = multiple(disp) yapmışsın ki ikinci disp yerine num1,num2 gelicek.
Mesaj tarihi:
Chewy said:

ama outputta tek sadece printf göstercek.Yani num1 ve num2 ye bakıp tek bi sey göstercek?


fonksiyonunu returnsuz yap. int yerine void kullanan, yine parametreler int alsın, fonksiyon içinde printfleri yaz.

main içinde sadece num1 ve num2 yi atayacak printf ve scanf i hazırla sonra multiple(num1,num2) ile yoluna devam et.

deneme yapamıyorum şu an ama kabaca böyle.
Mesaj tarihi:
while(num2%num1==0)
{
printf("Second number is a multiple of the first" ;

}
printf("Second number is not a multiple of the first" ;

yalnız bu kısımda, while koşulu sağlansada sağlanmasa da iki printf de gözükür kanımca, onun yerine if - else kullanılsa daha bir mantıklı gibi.
Mesaj tarihi:
illa while ile yapacaksan , o zaman fonskiyon içinde bir değişken belirle , num2%num1 sağlıyorsa true sağlamıyorsa false olsun, while dışında if-else kullanarak printfleri yaz.

hoş loop kullanmak başlıca saçma burada ama.
Mesaj tarihi:
void yerine fonksiyonu string döndürüp, hem while içinde hem while dışında iki printf yerine return koyarsan,
main'de printf ile fonksiyonu çağırırsan olur zannediyorum.
Mesaj tarihi:
multiple(2,6) diye çağırdın mı uçar program yalnız. while yerine if demen lazım orda.

Hocanın loop'tan kastı, sonucu çıkarma yaparak bulması. 2x5 = 5 + 5 olayı. Tam katıysa, çıkarmaların sonucunda 0 çıkması gerek.


void multiple(int num1, int num2)
{
int test = num2;
while (test > 0) test -= num1;
if(test == 0) printf("Second number is a multiple of the first");
else printf("Second number is not a multiple of the first");
}
Mesaj tarihi:
guys bir de şuna baksanız :S


#include<stdio.h>
int topla(int num1,int num2,int num3,int num4)
{
int sum=0;
double avg=0.0;

sum=num1+num2+num3+num4;

avg=sum/4;

return(sum,avg);
}

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

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

disp=topla(sum,avg);

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

return 0;

}


sum ve avg tanımlanmadı diyor neden?Fonksiyonda tanımladım onları ben.
Mesaj tarihi:
return(sum);
return(avg);
}

şöyle denedim olmadı.Fonksiyonda tek tek call ettirdim

aşada şey sum'ı tanımladım

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

dedim olmadı gene.Tek tek ayırarak call ettirsem onları olmaz mı?
Mesaj tarihi:
Gene üstteki hatandan yapmışsın bi fonksiyonu
int topla(int num1,int num2,int num3,int num4) diye tanımlıyorsan o fonksiyonu çağırırken disp=topla(num1,num2,num3,num4); yani main de parametrelerin neyse onları yollıcaksın.
Şöyle düşün fonksiyon kendi halinda kapalı bi kutu parametre olarak mainden aldıkları num1 num2 falan buna giriyo kendi içinde bişeyler yapıp sana bi çıktı veriyor. Sen fonksiyona dışardan fonksiyon içinde tanımladığın bişeyler yollamışın. Mainde tanımladığın num1 num2 yi yollaman gerek.

Ayrıca return kısmı da return(sum,avg) şekilde çalışmaz fonksiyonu int topla olarak tanımladığın için tek bir int değeri geri dönebilirsin sadece return avg; mesela birden çok değer dönmek istiyosan pointerları görmeniz gerek önce.
Mesaj tarihi:
yani doğrusu şu olması gerekmiyor mu?

#include

int topla(int sum,int avg)
{
int num1,num2,num3,num4;

sum=num1+num2+num3+num4;

avg=sum/4;

return(sum,avg);
}



yada şöyle,


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

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

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

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

return 0;

}
×
×
  • Yeni Oluştur...