Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1280 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C - Gros débutant] Probleme de variable ...

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C - Gros débutant] Probleme de variable ...

n°1832778
SarkastiK2
Posté le 31-12-2008 à 11:44:56  profilanswer
 

Voila, j'ai un probleme avec mon code ...
Tout dabord il me mets un warning a la ligne 16 , une erreur C4700 "variable aaaa non initialisé utilisée" : Je ne comprend pas trop ce que ca veut dire...
Ensuite, il ne prend pas mon "if else", il me mets toujours que l'année est bissextile  
 
 
 
#include<stdio.h>
#include<conio.h>
 
void bissextile(int aaaa);
void calcul(int aaaa);
 
int main()
{
int relance,aaaa;
relance = 1;  
 
while (relance == 1)
{
bissextile(aaaa);
calcul(aaaa);
 
 // Demande de relance
 fflush(stdin);
 printf("\n\nRelancer le programme ? " );printf("1=Oui " );printf("0=Non\n" );
 scanf("%int",&relance);
 fflush(stdin);
}
 
while (relance == 0)
{
return 0;
}
 
}
 
void bissextile(int aaaa)
{
printf("Veuillez entre une annee (Au format aaaa)" );
scanf("%d",&aaaa);
 
printf("%d",aaaa);
 
}
void calcul(int aaaa)
{
if (( aaaa % 4 == 0 && aaaa % 100 != 0) || (aaaa % 400 == 0))  
{
 printf("c'est bissextile\n" );
}
else
{
 printf("ce n'est pas bissextile\n" );
}
 
}

mood
Publicité
Posté le 31-12-2008 à 11:44:56  profilanswer
 

n°1832782
dwogsi
Défaillance cérébrale...
Posté le 31-12-2008 à 11:51:21  profilanswer
 

Pour ton warning suffit de modifier la déclaration de ta variable.
Quelque chose du genre : int aaaa = 0;
 
C'est quoi ça???

Code :
  1. while (relance == 0)
  2.        return 0;


Supprime la ligne du while, elle sert à rien du tout.
 
scanf c'est le mal.
http://www.siteduzero.com/tutoriel [...] fgets.html
Et en principe on purge pas stdin de cette manière.


Message édité par dwogsi le 31-12-2008 à 11:57:44

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1832791
SarkastiK2
Posté le 31-12-2008 à 12:06:06  profilanswer
 

Ah ouais bien vu pour la déclaration Merci !
 
J'vais voir ce que tu m'as envoyé, c'est pour le if else ou rien a avoir ?

n°1832985
tpierron
Posté le 31-12-2008 à 19:49:28  profilanswer
 

Et on devine directement quelle sera ta question suivante : pourquoi aaaa vaut toujours zéro dans la fonction calcul() ?
 
Parce que la variable aaaa que tu manipule dans bissextile() n'a rien à voir avec la variable du même nom dans main(). Ou tu passes par des pointeurs (mais si tu débutes, je doute que tu maitrises ce concept), ou tu retournes la valeur saisie dans bissextile(), via un truc du genre (en plus de fortement te conseiller d'utiliser autre chose que scanf) :

Code :
  1. int bissextile(void)
  2. {
  3.     int aaaa;
  4.     printf("Veuillez entre une annee (Au format aaaa)" );
  5.     scanf("%d",&aaaa);
  6.     printf("%d",aaaa);
  7.     return aaaa;
  8. }


 
Et dans main, utilise la fonction bissextile de cette façon :

Code :
  1. aaaa = bissextile();



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C - Gros débutant] Probleme de variable ...

 

Sujets relatifs
probleme image 4d, PHP, SQLimpossible de rejouer....probleme de scanf :(
Problème avec condition dans script batchpetit probleme avec un script css
probleme sur formulaireEquivalent en C# pour sérialiser une structure. (Envoi par le réseau)
[C] Login password en consoledébutant java
Problème de connexion avec SQL serveur 2005Petit problème d'affichage HTML
Plus de sujets relatifs à : [C - Gros débutant] Probleme de variable ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR