Bonjour à vous tous !
Je me présente,
Je suis étudiant en 1ère année de médecine, et avec la nouvelle réforme PASS nous avons droit à une mineure. Dans mon cas cette mineure concerne l'informatique. Or nous avons un TP à rendre, pour aujourd'hui. J'ai hésité à poster mon code par peur que je ne sois pas accepté par la communauté. M'enfin trève de bavardage et place à l'essentiel :
- Tout d'abord voici mon code :
Code:#include <stdio.h> #include <stdlib.h> int main() { int tab[8]; int x=0, i, r=1, s=1; printf("Rentrer au clavier une valeur binaire, positive ou negative sur 8 positions. "); printf("\n"); for(i=1; i<=8; i++){ printf("Entrer la val %d : ", i); scanf("%d", &tab[i]); while(tab[i]<0 || tab[i]>1){ printf("Entrer la val %d : ", i); scanf("%d", &tab[i]); } } if(tab[0]==1){ s=-1; for(i=0; i<8; i++){ tab[i]=1-tab[i]; } for(i=7; i>=0; i--){ tab[i]=r+tab[i]; if(tab[i]>1){ tab[i]=0; r=1; }else r=0; } } for (i=0; i<8; i++){ x=2*x+tab[i]; } x=x*s; printf(" valeur de x : %d\n", x); return 0; }- Mon soucis :
Mon problème est le fait que lorsque j'entre certaines valeurs comme 11000011 au lieu d'obtenir 195, mon résultats est 1121. Et cela pour tout...
Capture5.PNG
Pour ce qui est du logiciel utilisé, Code::Blocks
J'ai beau chercher... Je ne comprends pas d'où vient l'erreur.. excusez-moi si j'emploie mal certains termes ou que l'erreur est simple à comprendre..
Merci de votre attention, en espérant une réponse des plus rapide.
Jean-Frédérick
Cordialement,
-----