Yapmak istediğim x^(n-1)/(n-1)! şeklinde girilen sayıya göre dizi oluşturmak, örneğin:
N=5,x=4 ise
4^0/0!+4^1/1!+4^2/2!+4^3/3!
şeklinde olacak.
#include
int belirle(int,int);
int fak(int);
int main()
{
int x, neksi, n;
int sonuc;
printf(“x degerini giriniz:\n”);
scanf(“%d”, &x);
printf(“\nn degerini giriniz:\n”);
scanf(“%d”, &n);
neksi=n-1;
for(int i=0;i<=neksi;i++)
{
if(i
Selamlar,
void fonksiyonun bir deger donmeyecegi anlamina geliyor.
N=5 icin dogru calismamasinin nedeni 64/6’nin tam sayi olmamasindan kaynaklaniyor. Bu sorunun zaten farkinda oldugun 2. sorundan belli oluyor.
Bir fonksiyonun float donmesini saglamak icin donen veri tipini int (integer=tam sayi) yerine float olarak degistirmen gerekiyor. Ayrica ondalikli islem yapacagin her yerdeki veri tiplerini de float olarak degistirmen gerekiyor:
float sonuc;
Son olarak bir sey daha yapman gerekiyor. C dilinde islem yaptigin tum degerler tam sayi olmasina ragmen islem sonucu ondalikli sayi olacaksa bunu kodlama yaparken ozellikle belirtip veri tipi degisimini zorlaman gerekiyor. Bir ornekle aciklamak gerekirse:
float x;
int y=5,z=2;
x=y/z;
Bu islemin sonucu 2 olarak hesaplanir. Tam olarak ondalikli sayiyi gormek istersen islem yaptigin degerlerden birisi icin tip degisikligi yapman gerekir. Mesela:
float x;
int y=5,z=2;
x=(float)y/z;
float parametreleri yazdirman icin %d yerine %f kullanmak gerekiyor. Kodun son hali soyle:
#include
float belirle(int,int);
int fak(int);
int main()
{
int x, neksi, n;
int sonuc;
printf(“x degerini giriniz:\n”);
//scanf(“%d”, &x);
x=4;
printf(“\nn degerini giriniz:\n”);
//scanf(“%d”, &n);
n=5;
neksi=n-1;
for(int i=0;i<=neksi;i++) { if(i