Fibonacci

Résolu/Fermé
Zaga - Modifié par Zaga le 7/10/2013 à 14:53
 Utilisateur anonyme - 7 oct. 2013 à 14:32
Bonjour, je voudrais écrire un programme en langage C qui me donne le n-ieme terme de la suite de Fibonacci. Pour cela j'ai écrit ceci :

#include <stdio.h>
int main(void) {
int nb, i=2, a=1, b=1, c;
printf("Saisissez un nombre entier : ") ;
scanf("%d", &nb) ;
if (nb=0) {
printf("u(%d)=1", nb);
}
if (nb=1) {
printf("u(%d)=1", nb);
}
if (nb>1) {
while (i<=nb) {
c=b+a;
a=b;
b=c;
i++;
}
printf("u(%d)=%d\n", nb, c);
}
}


Mais il me retourne u(1)=1 quelque soit le nombre que je rentre, je ne comprends pas pourquoi... :( (je précise que l'on ne peut pas utiliser de fonction récursive)



3 réponses

Utilisateur anonyme
7 oct. 2013 à 14:20
Bonjour

Et si tu essayais de faire les comparaisons avec == au lieu de = ?
0
Ah mais oui, merci beaucoup, ça marche :)
0
Utilisateur anonyme
7 oct. 2013 à 14:32
salut,

Dans un premier temps j'ai fais une petite fonction récursive pour le faire :

int fibo(int iFib)
{
if (iFib == 0) return 0;
if (iFib == 1) return 1;
if (iFib == 2) return 1;

return fibo(iFib - 1) + fibo(iFib - 2);
}
D'ailleur en passant, pitié essayez d'indenter votre code pour la lisibilitée.


Sinon, les erreurs dans ton code sont au niveau de tes tests :


if (nb=0)
if (nb=1)


ici tu donne la valeur à ta variable , il faut écrire des doubles '=' pour les tests:


if (nb==0)
if (nb==1)


naga
0