2013-06-17 2 views
0

현재 시험 준비를하고 있는데 다음과 같은 과제를 발견했습니다.언어 : C; 계열 반복 및 반복 계산

계열 (반복 및 반복) 1- (1/2) + (1/3) - (1/4) + (1/5) ... (1/n)이다. 나는 일반적인 웹 페이지와 특히이 페이지를 검색했지만, 불행히도 내가 이해하지 못하는 자바 기반 솔루션을 발견했다.

그래서, 저를 도와주세요 :)

내 최선의 노력은 지금까지 단지 나에게 대답 "1.00"을 얻는다 : -/

여기

내가 (전액) 한 일이다

#include <stdio.h> 

float reihe_ite(int n); 
float reihe_rek(int n); 

int main(){ 
     float a,b; 
     a=reihe_ite(5); 
     b=reihe_rek(5); 

     printf("\niterativ: %.2f\nrekursiv: %.2f", a, b); 

     return 0; 
} 

float reihe_ite(int n){ 
     int i; 
     float x=0; 
     for(i=1;i<=n;i++){ 
       if(i%2==0){ 
         x=x-(1/i); 
       } 
       else{ 
         x=x+(1/i); 
       } 
     } 
     return x; 
} 

float reihe_rek(int n){ 
     if(n==1) 
       return 1; 
     else{ 
       if(n%2==0){ 
         return reihe_rek(n-1)-(1/n); 
       }  

       else{ 
         return reihe_rek(n-1)+(1/n); 
       } 

     } 
} 
+0

'에 대한

x=x-(1.0f/i); 

(1/i)는'항상'I> 1' 0이 될 것입니다. 정수 계산이므로'x Maroun

답변

2
x=x-(1/i); 

1/i은 정수부입니다.

사용 : float 부문

+0

대단히 감사합니다. 이제 작동합니다. :) –