Valeur non attendu dans C

Fermé
rocksider Messages postés 106 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 16 mars 2012 - 2 janv. 2009 à 22:11
rocksider Messages postés 106 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 16 mars 2012 - 3 janv. 2009 à 00:18
Bonjour,
Donc je travaille dans une matrice en c en lui affectant des valeurs entre 1 et 9, mais apres quand j'affiche la matrice ça me donne des valeurs telle que -32768 ... est ce un probleme du au language c, je doute fort là dessus, au fait j'utilise l'ide turbo C, merci de me rapporté une reponse ...

5 réponses

je vous conseille de verifier la syntaxe car lorsque le compilateur ne trouve pas de valeur a affecter au coificient de la matirce ,il va lui afecter une valeur alleatoire telles -3245,-89446
0
Ce n'est sûrement pas un problème dû au compilateur.
-32768, c'est bizarre, ce n'est pas une valeur au hasard; c'est le minimum d'un entier signé sur 16 bits... il doit y avoir une erreur dans le code, on peut voir (s'il est indenté et pas trop long) ?
0
rocksider Messages postés 106 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 16 mars 2012 9
2 janv. 2009 à 22:56
Comme a dit loupius, ce n'est pas un nombre aléatoire mais un la plus petite valeur d'un entier codé en 16 bits, j'ai pensé au debut que ce serai -32768 = 1111111111111111 si on fait le complement a deux alors ça nous donne 1, genre à la place du 1 ça me donne la valeur complementé, mais c'est que 1 s'affiche dans le tableau, donc c'est pas ça je pense

j'avais esseyé de faire un unsigned pour la matrice et je me rapelle plus ce que ça donne, mais si ma mémoire est bonne c'était 32768, le programme est trop long :( trop meme,
0
min = -32768 base 10 = 8000 base 16 = 1000 0000 0000 0000 base 2
max = +32767 base 10 = 7FFF base 16 = 0111 1111 1111 1111 base 2
Si on a pas une idée du code, on ne va pas pouvoir t'aider.
0
lina_sp611 Messages postés 4 Date d'inscription vendredi 2 janvier 2009 Statut Membre Dernière intervention 3 janvier 2009
2 janv. 2009 à 23:38
salut
se nombre négatif est dû parseque tu n'as pas initialiser ta matrice
ta affecter directement les valeurs
ce qui ne fonctionne pas en C
il faut d'abord initialiser tes variables à 0 par example ensuite lance ta boucle pour l'affectation des valeurs
0
Il est certain qu'il faut initialiser la matrice:
- initialiser au sens 'instanciation' ou 'allocation mémoire' suivant le type de matrice.
- initialiser au sens de valeur contenue. Il est certain que si ce n'est pas fait on trouvera n'importe quoi car le 'C' n'initialise pas par défaut; par contre la nécessité d'initialiser à 0 avant d'affecter une autre valeur, n'est absolument pas indispensable.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rocksider Messages postés 106 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 16 mars 2012 9
3 janv. 2009 à 00:18
merci deja pour vos reponse, mais j'ai dejà initialisé la matrice en 0 pour apres pouvoir changer leurs valeurs, je vais compiler avec un autre compilateur pour voir ce que ça donne ..
0