PDA

Tam Sürümünü Görmek İçin : acele bakabilir misiniz?


spring_07
21/11/2005, 00:07
e_sayi foksiyonunda bir hata var bulamadım.. acele bakabilir misiniz? yarına ödevim




#include <stdio.h>
#include <conio.h>


unsigned char Menu(void);
float Kuvvet(char,char);
float Faktor(char);
float e_Sayi(char,char);

int main(void)
{
unsigned char secim;
float sonuc;
char taban,us;
secim=Menu();
if(secim=='1')
{
printf("\nTabani girin:");
taban=getche();
printf("\nUssu girin:");
us=getche();
sonuc=Kuvvet(taban,us);
printf("\n%8.0f",sonuc);
}
if(secim=='2')
{
char sayi;
printf("Sayiyi girin:");
sayi=getche();
sonuc=Faktor(sayi);
printf("\n%8.0f",sonuc);
}
if(secim=='3')
{
char us,seri;
printf("Üssü girin:");
us=getche();
printf("Seri sayisini girin:");
seri=getche();
sonuc=e_Sayi(seri,us);
printf("\n%8.0f",sonuc);

getch();
return 0;

}

unsigned char Menu(void)
{
unsigned char ch;
printf("1:Kuvvet alma.\n2:Faktoriyel hesabi\n3:e hesabi.\n");
printf("Seciminizi girin:");
ch=getche();
printf("\n");
return ch;
}

float Kuvvet(char taban,char us)
{

float islem=1;
int taban1,us1;

taban1=taban-48;
us1=us-48;


for(us1;us1>0;us1--)
{
islem=islem*taban1;
}

return islem;
}


float Faktor(char sayi)

{

float faktoriyel=1;
int sayi1=sayi-48;

for(sayi1;sayi1>1;sayi1--)
{
faktoriyel=faktoriyel*sayi1;
}


return faktoriyel;

}

float e_Sayi(char us,char seri)
{
double e_sayisi=0;

for(seri;seri>-1;seri--)
{

double fak=1;
char gecici=seri;

for(gecici;gecici>1;gecici--)
{
fak=fak*gecici;
}
e_sayisi=e_sayisi+(us/fak);




return e_sayisi;
}


myavuzselim
21/11/2005, 01:02
loat e_Sayi(char us,char seri)
{
double e_sayisi=0;

for(seri;seri>-1;seri--)
{ // <<<<------- acmissin ama kapatmamissin

double fak=1;
char gecici=seri;
......

asoza
21/11/2005, 01:13
Girintili kod yazma tekniğini kullanmanızı tavsiye ederim. Daha okunaklı kodlarınız olacağı gibi küme parantezlerini de sağlıklı bir şekilde takip edebilirsiniz.
iki tane küme parantezini kapatmadığınız görülüyor.
main fonksiyonunun son if açılımında ve e_Sayi fonksiyonundaki for döngüsünde.

spring_07
21/11/2005, 01:17
Öncelikle ilgilendiğiniz için teşekkürler.. o hataları farkedip düzeltmiştim zaten fakat şimdide sonuç yanlış çıkıyor galiba döngü tam dönmüyor ??


#include <stdio.h>
#include <conio.h>


unsigned char Menu(void);
float Kuvvet(char,char);
float Faktor(char);
float e_Sayi(char,char);

int main(void)
{
unsigned char secim;
float sonuc;
char taban,us;
secim=Menu();
if(secim=='1')
{
printf("\nTabani girin:");
taban=getche();
printf("\nUssu girin:");
us=getche();
sonuc=Kuvvet(taban,us);
printf("\n%8.0f",sonuc);
}
if(secim=='2')
{
char sayi;
printf("Sayiyi girin:");
sayi=getche();
sonuc=Faktor(sayi);
printf("\n%8.0f",sonuc);
}
if(secim=='3')
{
char us,seri;
printf("\nÜssü girin:");
us=getche();
printf("\nSeri sayisini girin:");
seri=getche();
sonuc=e_Sayi(seri,us);
printf("\n%f",sonuc);
}
getch();
return 0;

}

unsigned char Menu(void)
{
unsigned char ch;
printf("1:Kuvvet alma.\n2:Faktoriyel hesabi\n3:e hesabi.\n");
printf("Seciminizi girin:");
ch=getche();
printf("\n");
return ch;
}

float Kuvvet(char taban,char us)
{

float islem=1;
int taban1,us1;

taban1=taban-48;
us1=us-48;


for(us1;us1>0;us1--)
{
islem=islem*taban1;
}

return islem;
}


float Faktor(char sayi)

{

float faktoriyel=1;
int sayi1=sayi-48;

for(sayi1;sayi1>1;sayi1--)
{
faktoriyel=faktoriyel*sayi1;
}


return faktoriyel;

}

float e_Sayi(char us,char seri)
{
double e_sayisi=0;
int seri1=seri-48;
int us1=us-48;

for(seri1;seri1>-1;seri1--)
{
printf("%d",seri1);
double fak=1;
int gecici=seri1;

for(gecici;gecici>1;gecici--)
{
fak=fak*gecici;
}
e_sayisi=e_sayisi+(us1/fak);

}
return e_sayisi;
}

acehreli
21/11/2005, 05:21
asoza, aslinda kodda biraz olsun girinti varmis ama boyle HTML forumlarinda bazen o ayrintilar kayboluyor. Kodlarin basina

[ c o d e ]

sonuna da

[ / c o d e ]

ekleyince kodlar girintilerini koruyacak sekilde kendi pencerelerinde gosteriliyorlar. Ama karakterlerin aralarinda hic bosluk karakteri birakilmadan yazilacak... Bkz. yukaridaki eklenmis halleri.. :)

Ali

spring_07
21/11/2005, 10:35
evet acehreli bu haklısın tam senin dediğin gibi oluyor.