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

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

Marsh Posté le 31-12-2008 à 11:44:56    

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" );
}
 
}

Reply

Marsh Posté le 31-12-2008 à 11:44:56   

Reply

Marsh Posté le 31-12-2008 à 11:51:21    

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})/
Reply

Marsh Posté le 31-12-2008 à 12:06:06    

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 ?

Reply

Marsh Posté le 31-12-2008 à 19:49:28    

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();


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed