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

Şö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;

}
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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");
}
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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;

}
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...