Şu Saçma Kod C 'De Neden Olmuyor ?
-
#include <stdio.h>
#include <math.h>
main()
{
int sayi, kup, kare;
float a;
printf("Islem yapilacak sayiyi girin : ");
scanf("%d",&sayi);
kare = sayi*sayi ;
kup = sayi*sayi*sayi ;
sayi = (float) a * a ;
printf(" %d sayisinin karesi %d kubu %d , karekoku de %.2f dir.",sayi,kare, kup);
return 0;
}
-
sen a*a demişsin de a'nın ilk değeri neki ayrıca sayı int türünden ama sen a*a nın sonucunu floata çevirmişsin.
-
sayi = (float) a * a ;
burda ne yapmaya çalıştın hocam ?
-
C dili sağdan sola doğru eşitleyerek çalışır. Yani;
sayi = a * a;
dediğin zaman, a sayısını kendisi ile çarparak çıkan sonucu sayi değişkenine eşitlemiş olursun. Tam tersi olarak olmaz, ve sendeki kodda çıkan sonuçta a değerini önceden kullanıcıdan almadığın için ramdeki rastgele bir noktadan alınacağından, sonuç anlamsız şeyler çıkar.
Doğrusunu,
kok = sqrt(sayi);
şeklinde kullanabilirsin.
kok = sqrt(sayi);
printf(" %d sayisinin karesi %d kubu %d , karekoku de %.2f dir.", sayi, kare, kup, kok); -
int sayi, kup, kare;
float a;
printf("Islem yapilacak sayiyi girin : ");
scanf("%d",&sayi);
kare = sayi*sayi ;
kup = sayi*sayi*sayi ;
a=sqrt(sayi) ;
printf(" %d sayisinin karesi %d kubu %d , karekoku de %.2f dir",sayi,kare, kup,a);
şu şekilde çalışacaktırNot: sqrt metodunu kullanabilmek için math.h kütüphanesini include etmeyi unutma.
-
edüt büdüt: üstte arkadaş yazmış
-
#include <stdio.h> #include <math.h> int main(void) { int sayi, kup, kare; double kok; printf("Islem yapilacak sayiyi girin :\n"); scanf("%d", &sayi); kare=sayi*sayi ; kup=sayi*sayi*sayi ; kok=sqrt(sayi); printf(" %d sayisinin karesi %d kubu %d , karekoku de %.2lf\'dir.\n",sayi,kare, kup, kok); return 0; } -
return0; varya hocam onun üstüne getch(); yazılmıyormuydu. Yeni başladımda acizane bi öneri belki bi yardımım dokunur
-
HanDsomE bunu yazdı:
-----------------------------
return0; varya hocam onun üstüne getch(); yazılmıyormuydu. Yeni başladımda acizane bi öneri belki bi yardımım dokunur
-----------------------------getch() fonksiyonu kullanicidan bir karakter ister.
sanrim o ki; senin, getch fonksiyonunu kullanim amacin, ciktini gorebilmek icin programi durdurmak. Ama Mesela, programini komut satirindan cagirirsan(calistirirsan) ciktini gorebilmek icin programin durmasina gerek kalmaz. Bu yuzden de getch fonksiyonunu cagirmana gerek kalmamis olur.
Yani her programda getch fonksiyonu bulunucak diye bi kaide yok. ;-) -
çalışmamasının sebebi printf te 4 tane %d girerken onları tanımlayan 3 tane integer ismi bulundurmam.
-
GrN bunu yazdı:
-----------------------------
HanDsomE bunu yazdı:
-----------------------------
return0; varya hocam onun üstüne getch(); yazılmıyormuydu. Yeni başladımda acizane bi öneri belki bi yardımım dokunur
-----------------------------getch() fonksiyonu kullanicidan bir karakter ister.
sanrim o ki; senin, getch fonksiyonunu kullanim amacin, ciktini gorebilmek icin programi durdurmak. Ama Mesela, programini komut satirindan cagirirsan(calistirirsan) ciktini gorebilmek icin programin durmasina gerek kalmaz. Bu yuzden de getch fonksiyonunu cagirmana gerek kalmamis olur.
Yani her programda getch fonksiyonu bulunucak diye bi kaide yok. ;-)
-----------------------------hocam saolasın bilgi için. Yeni yeni başladığım için işte her gördüğüm yaşlıya dede diyorum .)
