2016-04-01 20 views
-1

Ich schrieb eine Funktion zu berechnen und es sollte auch die Summe zurückgeben. Allerdings funktioniert die Summe nicht gut. Ausgang:Wie bekomme ich die Summe zur Arbeit?

Enter how many numbers to print : 7 
0 1 1 2 3 5 8 
Sum of series is: 31 

Sum 20

-Code sein sollte:

#include<stdio.h> 
void f(int num) 
{ 
     int k,count; 
     int sum=0; 
     int i = 0; 
     int j = 1; 
     printf("%d %d ",i,j); 
     count = 2; /* count is 2 because we already printed 0 and 1*/ 
     k = i + j; 
     while(count < num) 
     { 
      printf("%d ",k); 
          i = j; 
          j = k; 
          k = i+j; 
          sum+=k; 
          count++; 
     } 
     printf("\n"); 
     printf("Sum of F series is: %d",sum); 

     return; 
} 
int main() 
{ 
     int num; 
     printf("Enter how many numbers to print : "); 
     fflush(stdout); 
     scanf("%d",&num); 
     f(num); 
     return 0; 
} 

Jede Hilfe sehr geschätzt

+1

Sie addieren nicht, was Sie drucken. –

+0

das klingt wie eine Hausaufgabe ......... – 8protons

Antwort

1

Zwei Änderungen zu tun wäre -

1. Initialisieren sum bis 1 -

int sum=1; //as you don't include 0 and 1 in loop 

2. Ändern Sie die Position der sum+=k; Aussage -

printf("%d ",k); 
sum+=k; 

Weil gerade jetzt in Ihrem Code -

k = i+j; 
sum+=k; 

k geändert wird (die ist falsch) bevor es zuhinzugefügt wird, was zu falscher Antwort führt.

Demo

+0

Danke! Es funktioniert gut und ich verstand auch, warum es jetzt nicht funktionierte :) – Lurem

+0

@NickM Froh, es hat funktioniert. Wenn Sie die Serie gedruckt haben, sehen Sie, dass falsche Serien generiert wurden :) – ameyCU

Verwandte Themen