Un prog simple qui déconne [C] - C - Programmation
Marsh Posté le 07-01-2006 à 00:05:18
Pcsnake a écrit : J'ai essayé de faire un programme en C mais celà déconne (vous en comprendrez vite le principe, il est enfantin):
|
bon je suis pas sur mais bon...tu declares tes variables -> ok
tu fais tes calculs -> ok? ben nan paske tu utilises cm que tu as pas initialisé!!
tu l'initialise que lors du printf donc premier resultat completement biizarre et la suite ca passe
normalement si tu met ca ca devrait marcher (initialiser cm avant tes boucles et mettre juste cm dans ton printf.)
Code :
|
Marsh Posté le 07-01-2006 à 09:03:30
gocho a écrit : |
Je crois pas non ....
ca ca marche par contre :
Code :
|
Marsh Posté le 07-01-2006 à 09:56:35
gocho a écrit : bon je suis pas sur mais bon...tu declares tes variables -> ok |
Le raisonnement est bon, par contre tu utilises la variable "pouce" pour initialiser "cm"... et "pouce" n'est pas défini non plus à cet endroit du programme, donc tu retrouves le même problème
Il faut savoir qu'une variable non initialisée contient potentiellement n'importe quelle valeur, elle est non définie. La variable "pouce" peut donc virtuellement contenir 0.0, 3.14159, la réponse à LA question de l'univers, l'âge du capitaine, ou le nombre de mailles tricotées par ma grand-mère depuis 1942.
(je mets en fait en clair ce que dit Joel F par son code, juste mes yeux ont mis plus de 3min derrière leurs cernes pour voir la différence entre les deux codes )
Sinon petite remarque au passage : le prototype de main() est incorrect.
main() doit explicitement retourner un entier, la norme admet deux prototypes possibles :
int main(void);
ou
int main(int argc, char * const * argv);
Et donc, par conséquent, un "return" en fin de main() est requis. On retourne 0 en cas de succès, et toute autre valeur en cas d'échec ou de warning. En général on utilise les constantes EXIT_SUCCESS et EXIT_FAILURE, définies dans stdlib.h, pour que ce soit plus clair.
Marsh Posté le 07-01-2006 à 11:54:00
J'ai modifié mon programme et maintenant ça marche:
Parce que de la manière de Joel F la variable cm n'était pas encore déclarée (en tout cas sa valeur) lors de la déclaration de larg1.
Code :
|
Marsh Posté le 07-01-2006 à 12:00:44
Pcsnake a écrit : J'ai modifié mon programme et maintenant ça marche: |
larg1 n'a rien à voir avec la définition de cm.
Le code de Joel F est correct.
Et je t'ai dis que ton prototype de main() était faux, tout comme l'absence de return en fin de code :
|
Marsh Posté le 07-01-2006 à 13:33:05
Pcsnake a écrit : J'ai modifié mon programme et maintenant ça marche: |
Lourdingue... 'double' est le type 'naturel (et précis) des flottants. Il faut apprendre à factoriser le code...
Code :
|
Marsh Posté le 08-01-2006 à 01:40:44
Joel F a écrit : Je crois pas non .... |
Elmoricq a écrit : Le raisonnement est bon, par contre tu utilises la variable "pouce" pour initialiser "cm"... et "pouce" n'est pas défini non plus à cet endroit du programme, donc tu retrouves le même problème [...] |
'tin le con que j'suis pas!!!
J'avais carrement pas fait attention a l'autre variable
Enfin mes cernes sont pas mal non plus et j'viens de galerer quelques temps a trouver ce que signifiait le from dans le code d'Emmanuel
Je vois ca mais je pense pas a regarder la boucle donc forcement je comprends pas....
'fin bref l'idee c'etait qu'il fallait initialiser avant quoi
sur ce bonne nuit, j'en ai besoin
Marsh Posté le 06-01-2006 à 22:51:31
J'ai essayé de faire un programme en C mais celà déconne (vous en comprendrez vite le principe, il est enfantin):
Et regardez ce que celà affiche à l'écran:
Que dois-je faire pour corriger ce problème a la 10° ligne sous les étiquettes du tableau?