Undefined reference to 'WinMain@16'

Fermé
molka - Modifié par KX le 8/03/2016 à 20:25
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 9 mars 2016 à 14:24
Bonjour,
j'ai un problème : ce message s'affiche " undefined reference to WinMain@16"
mon code ce compile mais je ne peux pas faire le run voici mon code (il est un peu long) :
{ il me demande d'implémenter une application de Gestion des Comptes Courants dans une banque.... svppp ca me tue je trouve pas ou est la faute }

l'implémentation par codeblockes


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define max 100
typedef struct
{ int num_cpt ;
  char nom_prenom [50] ;
  float solde ;
} compte;
typedef struct
{  compte tab[max];
   int nb_cpt;
}banque ;
void saisir_cpt (compte* c )
{

printf ("donner votre nom et votre prenom :  \n ");
scanf ("%s",c->nom_prenom);
printf ("donner le num de compte  de 20 chifree  :, ");
scanf ("%d",&c->num_cpt);
printf ("donner le solde que on veut intialiser  votre compte :\n ");
scanf ("%f",&c->solde);
}
void affiche_cpt (compte c)
 {
   printf ("votre numero de compte est: %d \n ",c.num_cpt);
   printf ("votre nom & prenom est : %s \n ",c.nom_prenom);
   printf ("votre solde est : %0.2f \n",c.solde);
 }
 void retrait_cpt (compte* c ,float x )
  {
     if (x<c->solde)
     {
         c->solde-=x;
         printf ("l'operation de retrait se fait avec succeés \n");
     }
     else
         printf ("desole votre solde insuffisant , voulez recharger votre compte \n");
  }
void deposer_cpt (compte* c , float x)
{
  printf ("votre solde avant l'ajout est : %0.2f \n",c->solde);
  c->solde +=x ;
  printf ("votre solde apres l'ajout est : %0.2f \n",c->solde);
}
void viver (compte* c1 ,compte* c2 , float x)
{
    if (c1->solde >x)
     { c1->solde=c1->solde -x;
       c2->solde=c2->solde+x;
       printf (" l'operation se fait avec succee \n ");
      }
     else
     printf ("le solde qui va vivre a 2eme compte est insuffissant  \n ");
}

void intialsier_ba (banque* b )
{ b->nb_cpt=0;
}

int rech_ba (banque b ,int num_cpt )
 { int i=0;
     while ((i<b.nb_cpt)&& (b.tab[i].num_cpt!=num_cpt))
       i++;
       if (i<b.nb_cpt)
        return i;
        return -1;
}
void ajouter_ba (banque* b , compte c )
 { int k;
  k=rech_ba(*b,c.num_cpt);
   if (k==-1)
   {b->tab[b->nb_cpt]=c;
   b->nb_cpt++;}
 }

void retrait (banque* b , int num_cpt , float x )
 { int  k =rech_ba (*b,num_cpt);
   if (k!= -1)
    {  retrait_cpt (&b->tab[k],x );}
    else
     printf ("ce  compte est invalide \n");

 }
void deposer_ba (banque *b , int num_cpt , float x )
 { int  k =rech_ba (*b,num_cpt);
     if (k!=-1)
       { deposer_cpt (&b->tab[k],x);}
      else
       printf ("cet compte invalide \n");
    }

void vivre_ba (banque *b , int c1 ,int c2 ,float x)
{
int k,g;
 k=rech_ba( *b , c1);
 k=rech_ba (*b,c2);
 if ((k!=-1)&& (g!=-1))
  { b->tab[k].solde-=x;
    b->tab[g].solde+=x;
    printf("l'operation se fait avec succee\n");
   }
  else
  printf ("l'un cet ces 2 compte n'est pas existe deja dans cet banque \n ");
}
float retoun_ba (banque *b)
{ int i ;
float s=0;
   for (i=0;i<b->nb_cpt;i++)
    s=s+b->tab[i].solde;
    return s;
}
void afficher_ba (banque *b )
 { int i;
  for (i=0;i<b->nb_cpt;i++)
    { printf ("le compte n° %d dans le banque est \n ",i+1);
       affiche_cpt (b->tab[i]);
    }
}
int menu_principale()
   { int choix;


    while (choix !=3)
    {
        do
        {   printf("             **********************************************************\n");
            printf("             **********************************************************\n");
            printf("             ***  FSB                                         2016  ***\n");
            printf("             ***                      Bienvenue                     ***\n");
            printf("             ***                    Menu principale                 ***\n");
            printf("             ***                        2016                        ***\n");
            printf("             ***                                                    ***\n");
            printf("             ***    Voulez Vous :                                   ***\n");
            printf("             ***       1- Gérer les comptes d'une banque            ***\n");
            printf("             ***       2- Inventaire de la banque                   ***\n");
            printf("             ***       3- Quitter l'application                     ***\n");
            printf("             ***                                                    ***\n");
            printf("             ***                                                    ***\n");
            printf("             ***        :)    Voulez Donner Votre Choix   :)        ***\n");
            printf("             **********************************************************\n");
            printf("             **********************************************************\n");
            printf("\n");
            printf("\n");
            printf("             Votre Choix est : ");
            scanf("%d",&choix);
            } while((choix<1)&&(choix>3));
   return choix;
    }
void menu1 ()
{    int choix=0;
 compte l,c ,c1, c2 ;
 float x ;
  while (choix !=7)
    {
        do
        {
            printf("             ******************************************************\n");
            printf("             *  FSB                                         2016  *\n");
            printf("             *                      Bienvenue                     *\n");

            printf("             *                        2016                        *\n");
            printf("             * Voulez Vous :                                      *\n");
            printf("             *  1- ajouter un compte                              *\n");
            printf("             *  2- consulter un compte                            *\n");
            printf("             *  3- Retrait argent                                 *\n");
            printf("             *  4- depot argent                                   *\n");
            printf("             *  5- virement                                       *\n");
            printf("             *  6- retourner au menu principale                   *\n");
            printf("             *  7- Quitter l'application                          *\n");
            printf("             *                                                    *\n");
            printf("             *        :)    Voulez Donner Votre Choix   :)        *\n");
            printf("             ******************************************************\n");
            printf("\n");
            printf("\n");
            printf("             Votre Choix est : ");
            scanf("%d",&choix);
        }while ((choix<1)&&(choix>7));
        switch (choix)
         {case 1 :
                {
                    system("cls");
                    saisir_cpt(&c);
                    break;
                    getch();
                }
            case 2 :
            {
                    system("cls");
                    affiche_cpt(c);
                    break;
                    getch();
                }

             case 3:
                {system("cls");
                  printf("donner le solde que veut le retrait x :\n ");scanf ("%f",&x);
                    retrait_cpt(&c,x);
                    break;
                    getch();}
              case 4:
                    {system("cls");
                    printf("donner le solde que veut le ajouter  x :\n ");scanf ("%f",&x);
                    deposer_cpt(&c,x);
                    break;
                    getch();}
              case 5:
                {system("cls");
                      printf("donner le solde que veut viver x :\n ");
                      scanf ("%f",&x);
                      printf("saisir le 1ere compte \n");
                      saisir_cpt(&c1);
                      printf("saisir le 2eme  compte \n");
                      saisir_cpt(&c2);
                    viver(&c1,&c2,x);
                    break;
                    getch();}
               case 6:
                    {system("cls");
                     menu_principale();
                    break;
                    getch();}

            case 7 :
                {
                    system("cls");
                    printf("  au revoir  \n");

                     break;
                    getch();

                }

             default :
                {
                    system("cls");
                    printf("  * Merci   pour votre attention :) a bientot :)   *\n"); break;
                    getch();
                }

    }}}

void menu2 ()
{ int l,k,num,num2,c1,c2,choix =0 ;banque b;float j,x; compte c;
     while (choix!=8)
      {
       do {
            printf("             ******************************************************\n");
            printf("             *  FSB                                         2016  *\n");
            printf("             *                  Bienvenue dans le                 *\n");
            printf("             *              Menu n 2 Gestion de banque            *\n");
            printf("             *                        2016                        *\n");
            printf("             * Voulez Vous :                                      *\n");
            printf("             *  1- afficher le solde d'un banque                  *\n");
            printf("             *  2- lister tous les comptes de banque              *\n");
            printf("             *  3- retourner au menu principale                   *\n");
            printf("             *  4-Quitter l'application                           *\n");
            printf("             *        :)    Voulez Donner Votre Choix   :)        *\n");
            printf("             ******************************************************\n");
            printf("\n");
            printf("\n");
    scanf("%d",&choix);
      } while((choix<1)&&(choix>4));
        switch (choix)
       { case 1 :
                {
                    system("cls");
                    printf ("le solde de cet banque est %f",retoun_ba(&b));
                    break;
                    getch();
                }
         case 2:
            {
                    system("cls");
                    afficher_ba(&b);
                    break;
                    getch();
                }

             case 3 :
                {
                    system("cls");

                    printf("  * vous avez retoure au menu principale  :)   *\n");
                   menu_principale();

                    break;
                    getch();
                }

             default :
                {
                    system("cls");
                    printf("   a bientot   *\n"); break;
                    getch();
                }


   } }}


void main ()
{
    float x;



        switch ( menu_principale())
        {

            case 1 :
                {
                    system("cls");
                    menu1();
                    break;
                    getch();
                }
            case 2 :
            {
                    system("cls");
                      menu2();
                    break;
                    getch();
                }

             default:
                {
                    system("cls");
                    printf("   a bientot    *\n"); break;
                    getch();
                }

        }
        }
        }

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
8 mars 2016 à 22:34
Bonjour,

Je n'ai pas lu le code, mais l'erreur est classique. Tu as compilé en mode graphique... Recréé un projet et utilise le mode console (nouveau projet / console application). Ca ira mieux.

0
salut merci pour ta réponse mais ça marche plus ..
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
9 mars 2016 à 14:24
Ca va être dur de t'aider si tu ne donnes pas de précision...
0