Arrays konusuyla alakalı C ödevi yardım

lorboloji

Doçent
Katılım
27 Haziran 2009
Mesajlar
584
Reaksiyon puanı
2
Puanları
0
Merhaba arkadaşlar. Sanırım Arrays konusuyla alakalı apmaya çalıştığım ama konuyu pek iyi anlamadağım için ödev için sizden yardım istiyorum ödev şu şekilde:

n!/n^n (n 1 ile sonsuz aralığında)

Yukarıdaki serinin değerini verecek C serisi yazmalıyız. Bu program MAİN fonksiyonu ve fonksiyon içermeli.


Witin the MAIN function.
. Number of terms N will be read from the standard input.
. N will be passed to the function as an argument.
. Sum of the N terms(return value from the function) will be printed.

Within the function.
. Sum of the N terms of the given series will be calculated and returned
to the MAIN function.

Olabilecek en basit halde bu fonksiyonu yazarsanız çok sevinirim.

Yardımcı olabilecek arkadaşların yardımlarını bekliyorum. Şimdiden herkese teşekkür ederim.
 

lorboloji

Doçent
Katılım
27 Haziran 2009
Mesajlar
584
Reaksiyon puanı
2
Puanları
0
#include <stdio.h>
#include <math.h>


long fonk(int N)
{
int a=1;
float result;
int fact=1;
float term;
float sum=0.0;


for (a=1;a<=N;a++){
fact=fact*a;
term=fact/pow(a,a);
sum+=term;
}
return sum;
}


int main(){
int n;//"sos" defines the sum of the serie//
float sos;
printf("enter a number\n" );
scanf("%d",&n);
sos=fonk(n);
printf("Sum of the serie is %f.",sos);
system ("pause");
return 0;
}



Arkadaşlar fonksiyonu yazmaya çalıştım kendi çapımda ama bir yerde hata yaptım galiba çalışmıyor. Nerede hata yaptığımı bende bilmiyorum. Yardım eder misiniz ? Bu ödevi mutlaka vermem gerek. 4 saatim kaldı.
 

lightning01

Öğrenci
Katılım
3 Mayıs 2014
Mesajlar
8
Reaksiyon puanı
1
Puanları
0
Kod:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
float fonk(int N)
{
int a=1;
float result;
int fact=1;
float term;
float sum=0.0;


for (a=1;a<=N;a++){
fact=fact*a;
term=(float)fact/pow(a,a);
sum+=term;
}
return sum;
}


int main(){
int n;//"sos" defines the sum of the serie//
float sos;
printf("enter a number\n" );
scanf("%d",&n);
sos=fonk(n);
printf("Sum of the serie is %f.\n",sos);
system ("pause");
return 0;
}
fonk fonksiyonu float dönüş tipinde olmalı,
system("pause") içi stdlib.h fonksiyonu gerekiyordu.
fact/pow(a,a) bölümünün float tipinde olmasını garantilemek için önüne float kelime konuluyor.
 

lorboloji

Doçent
Katılım
27 Haziran 2009
Mesajlar
584
Reaksiyon puanı
2
Puanları
0
fonk fonksiyonu float dönüş tipinde olmalı,
system("pause") içi stdlib.h fonksiyonu gerekiyordu.
fact/pow(a,a) bölümünün float tipinde olmasını garantilemek için önüne float kelime konuluyor.

Çok teşekkürler ilgin için. Senin düzeltmelerin de doğru. Ben daha sonra değiştirerek şöyle yaptım fonksiyonu
Kod:
[URL="http://forum.shiftdelete.net/usertag.php?do=list&action=hash&hash=include"]
#include[/URL]  <math.h> 
[URL="http://forum.shiftdelete.net/usertag.php?do=list&action=hash&hash=include"]#include[/URL]  <stdio.h> 


float fonk(int n) { 
float sonuc = 0.0f; 
int i; 


for(i=1; i<=n; i++) { 
int fact = 1; 


int j; 
for(j=1; j<=i; j++) { 
fact = fact*j; 
} 
sonuc = sonuc + fact/pow((float)i,i); 
} 
return sonuc; 
} 


int main() { 
printf("Bir sayi giriniz:  "); 
int n; 
scanf("%i", &n); 
printf("Serinin toplami: %.2f \n", fonk(n)); 


return 0; 
}

bunda da sonuçlar doğru çıkıyor.
 
Üst