Bonsoir tout le monde, dans la continuité du problème que j'avais posé plus tôt, je me retrouve avec un code qui m'oblige à convertir des entiers en réels et vice-versa.
Voyez plutôt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(){
unsigned int n;
double a,b,c,d;
unsigned int e;
double or,m;
double result;
while((scanf("%u",&n))==1){
if(n==0){
return(0);
}if(n==1){
printf("%d\n",1);
}else{
m=(double) n;
or=(1+sqrt(5))/2;
a=3-sqrt(5);
b=sqrt(5)-1;
c=sqrt(pow(or,a));
d=sqrt(pow(m,b));
result=c*d;
e=(unsigned int) result;
printf("%u\n",e);
}
}
return(0);
}
Le problème qui se pose, est que pour certaines valeurs de n que je rentre, j'obtiens le résultat attendu, tandis que pour d'autres, le résultat n'est pas le bon à quelquechose près (+1, -1, plus une centaine, ou moins une centaine ...).
D'après vous, est-ce que les conversions entre doubles et non-signés sont faites de la bonne manière ?
Merci