Tam Sürümünü Görmek İçin : fonksiyon u çalıstıramıyorum "c" de
#include<stdio.h>
int fok(int)
void main()
{
int a,f;
printf("sayy gir");
scanf("%d",&a);
f=fok(a);
printf("sonu‡ %d",f);
gecth();
}
int fok(int) {
int c;
c=a*a;
return c;
}
arkadaşlar nerde hata yaptıımı gören yok mu yaa. cvp bekliyorum sizden.
int fok(int), integer bir değişken gönderiyorsun da, bunun adı ne onu belirtmemişin.
int fok(int) {
int c;
c=a*a;
return c;
} içinde ki a tanımsızdır, tanımlamadan bir değişkeni kullanamazsın.
problemin çözümü ile ilgili iki farklı yönetemi bir birine karıştırmışın. dilin temelinden gelen bir eksikliğin var. değişkenlerin tanımı, kullanımı ve fonksiyonlarda parametre aktarımını tekrar gözden geçirirsen nerde hata yaptığını hemen görebilirsin.
#include<stdio.h>
int fok(int)
void main()
{
int a,f;
printf("sayy gir");
scanf("%d",&a);
f=fok(a);
printf("sonu‡ %d",f);
gecth();
}
int fok(int a) {
int c;
c=a*a;
return c;
}
bu şekilde yazdım gene olmadı. declaration syntax error weriyor ve void main( satırında hata old. belirtiyr.)
quasimodo
19/06/2007, 22:14
Fonksiyon bildirimiyle fonksiyon tanimlanmasi terimlerini sanirim
biraz karistirmissin.
Fonksiyon bildiriminde(prototipinde) derleyiciye fonksiyona
gonderdigin parametrelerin sayisini, tipini ve sirasinin ne sekilde oldugunu
arti geri donus degerinin hangi tip oldugunu bildirirsin ki bu yuzden
parametrelere isim vermene gerek yoktur versen dahi derleyici bunu
ihmal edebilir. Ornegin ;
int func(int , int);
Burada derleyiciye func isimli fonksiyonun iki tane parametresi oldugunu,
bu parametrelerin int (tamsayi) oldugunu ve geri donus degerinin
yine int oldugunu bildirirsin.
Bunu yapmadaki amac bu fonksiyonu eger tanimladigin yerden once
cagirirsan (yani bu ornek icin main() den) derleyiciden bir hata yada
uyari almamaktir. C de cok eski kalan bir gelenek vardir ki oda geri donus tipi
belirtilmeyen fonksiyonlarin donus tipi int kabul edilir. Gercektende oyledir :)
Ama
int fucn(int a, int b)
{
return a * b;
}
Bu fonksiyon tanimidir. Burada fonksiyonun ne is yapacagini belirlersin.
hatan int fok(int) ten sonra noktali virgulk koymamandan kaynaklaniyor.
acehreli
19/06/2007, 22:58
Iki hata daha:
1) "void main" yerine "int main" yazman gerekir.
2) getch'yi yanlis yazmissin.
Ayrica, 11 dakika uzun bir sure mi? Biraz bekle; herkesin isi gucu var... :)
Ali
korkmazo
20/06/2007, 12:22
#include <stdio.h>
/* Verilen 'sayinin' karesini dondurur */
int karesi (int sayi);
int main (){
int a;
printf("Sayi:\t");
scanf("%d",&a);
printf("Sonuc:\t%d\n",karesi(a));
return 0;
}
int karesi (int sayi){
return (sayi*sayi);
}
Istedigin bu heralde.
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.