Problème : tester en C

Fermé
firk - 10 juil. 2008 à 10:01
 firk - 10 juil. 2008 à 12:11
Bonjour,

Voilà, je voudrais savoir si je peux afficher mes printf selon des conditions que j'ai énumérées de façon détaillée.
Je ne parviens pas à tester mon programme!

/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.2/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
/home/jeux/tmp/ccCSuFIG.o: In function `colocation':
abc.c:(.text+0xdc6): undefined reference to `main'
collect2: ld returned 1 exit status

A quoi peut correspondre ce message?

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
10 juil. 2008 à 10:14
Salut
A priori, tu n'as pas mis de fonction main() dans ton programme. Donc, le compilateur n'est pas content à l'édition des liens, puisqu'il n'y a pas de point d'entrée. ;)
Solution ? Mettre un main ^^

Cdt
0
Et pourtant, il y a bien un main() dans mon programme, c'est ça le comble de l'histoire!!
Je fais quoi alors?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
10 juil. 2008 à 10:33
Bah, poste ton code qu'on puisse juger, ainsi que ta ligne de compilation.
0
Voila mon code :



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define Solvabilite_acquise 1
#define Demande_de_Caution_Solidaire 2
#define Impossible 3

char* status[6]={"CDI_hors_ess_ou_preavis_lic","CDD_CNE_ou_CDI_essai","Etudiant","TNS","Retraités","enplace_depuis_ plus_de_Douze_mois_sans_incident_paiement"};
//donne des valeurs allant de 0 à 5 aux différents status scanf("%s",&status[0]);scanf("%s",&status[1]);scanf("%s",&status[2]);scanf("%s",&status[3]);scanf("%s",&status[4]);scanf("%s",&status[5]);scanf("%s",&statut1);scanf("%s",&statut2); PB d'allocation pour status[i], i=0,...,5?


colocation(int R[],int L,char *statut1,char *statut2)
{ int i,h,k;


/* Cas 2 En place */

{ if(strcmp(statut1,statut2) && strcmp(statut2,status[5]))
printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");



/* Cas 1 En place avec n'importe qui */

else { if(strcmp(statut1,status[5]) && !strcmp(statut2,status[5]))
printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");

else { if(strcmp(statut2,status[5]) && !strcmp(statut1,status[5]))
printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");
}
}
}
/* Cas 2 Etudiants*/

{ if(strcmp(statut1,statut2) && strcmp(statut2,status[2]))
printf("Demande de Caution Solidaire\n");

/* 1 Etudiant avec quelqu'un ayant un autre statut */

else if((strcmp(statut1,status[2]) && !strcmp(statut2,status[2])) || ((strcmp(statut2,status[2]) && !strcmp(statut1,status[2]))))

{ { ((R[1]>3*L && R[0]>2*L) || (R[0]>3*L && R[1]>2*L))? 1 : exit(1) ;
(R[1]<2*L && R[0]<2*L)? 3 : exit(1);
}
if((strcmp(statut1,status[2]) && strcmp(statut2,status[1])) || (strcmp(statut2,status[2]) && strcmp(statut1,status[1])))
(R[1]>2*L || R[0]>2*L)? 2 : 3;
}

}



while((h=*status[0]) || (h=*status[3]) || (h=*status[4]))


/* Cas 2 C.D.I(k=0), 2 T.N.S(k=3), 2 Retraités(k=4) */

{ if(strcmp(statut1,statut2) && strcmp(statut2,status[h]))

{ if(R[0]>3*L || R[1]>3*L)
printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");
else
{ if(R[0]<2*L && R[1]<2*L)
printf("Impossibilité de soumettre votre dossier\n");

else { if((R[0]<2*L && R[1]>=2*L && R[1]<3*L) || (R[1]<2*L && R[0]>=2*L && R[0]<3*L))
printf("Demande de Caution Solidaire\n");
}
}
}
}


while((k=*status[0]) || (k=*status[3]) || (k=*status[4]))




/* Cas 1 C.D.I(k=0), 1 T.N.S(k=3), 1 Retraité(k=4) avec n'importe qui */

{ if((strcmp(statut1,status[k]) && !strcmp(statut2,status[k]) && !strcmp(statut2,status[1]) && !strcmp(statut2,status[5])) || (strcmp(statut2,status[k]) && !strcmp(statut1,status[k]) && !strcmp(statut1,status[1]) && !strcmp(statut1,status[5])))

{ if(R[0]<2*L && R[1]<2*L)
printf("Impossibilité de soumettre votre dossier\n");

{ while((R[0]<2*L && R[1]>=2*L) || (R[0]<2*L && R[1]>=2*L))
{ (k=0)? 2 : 3;
(k=3)? 2 : 3;
(k=4)? 2 : 3;
}
}
{ while( (R[0]>3*L && (R[1]<=3*L || R[1]>=2*L || R[1]<2*L))||(R[1]>3*L && (R[0]<=3*L || R[0]>=2*L || R[0]<2*L)))
{ (k=0)? 1 : 2;
(k=3)? 1 : 2;
(k=4)? 1 : 2;

}
}
}
}



/* Cas 2 C.D.D */

{ if(strcmp(statut1,statut2) && strcmp(statut2,status[1]))
{ if(R[0]<2*L && R[1]<2*L)
printf("Impossibilité de soumettre votre dossier\n");
else{ if((R[0]<2*L && R[1]>2*L) || (R[1]<2*L && R[0]>2*L))
printf("Demande de Caution Solidaire\n");
}
}

/* Cas 1 C.D.D avec n'importe qui sauf En place : cas de soumission */

else { if((strcmp(statut1,status[1]) && !strcmp(statut2,status[1]) && !strcmp(statut2,status[5])) || (strcmp(statut2,status[1]) && !strcmp(statut1,status[1]) && !strcmp(statut1,status[5])))

{ (R[1]<2*L || R[0]<2*L)? 3 : exit(2);
while(((R[0]<2*L || R[0]>=2*L || R[0]>3*L) && R[1]>=3*L) ||((R[1]<2*L || R[1]>=2*L || R[1]>3*L) && R[0]>=2*L))
printf("Demande de Caution Solidaire\n");


if(strcmp(statut1,status[1]) && strcmp(statut2,status[2]))
{ while((R[0]<2*L && R[1]>=2*L))
printf("Impossibilité de soumettre votre dossier\n");

while(R[0]>=2*L || R[1]>=2*L)
printf("Demande de Caution Solidaire\n");
}

}
}
}
}








main()
{ int i;int L; int *R;
char *status[6];char *statut1;char *statut2;

statut1=(char*)malloc(6*(sizeof(char)));
statut2=(char*)malloc(6*(sizeof(char)));

L=(int)malloc(10000*(sizeof(int)));
R[0]=(int) malloc(10000*(sizeof(int)));
R[1]= (int) malloc(10000*(sizeof(int)));

printf("Indiquer la situation du premier colocataire : %s",statut1);
scanf("%s",statut1);

printf("Indiquer la situation du deuxième colocataire : %s",statut2);
scanf("%s",statut2);

printf("Indiquer le loyer du foyer : %d\n",L);
scanf("%d",&L);

printf("Indiquer le revenu du colocataire1 : %d\n",R[0]);
scanf("%d",&R[0]);

printf("Indiquer le revenu du colocataire2 : %d\n",R[1]);
scanf("%d",&R[1]);

colocation(R,L,statut1,statut2);
}
0
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 69
10 juil. 2008 à 10:49
De toute façon, que tu mettes un printf ou pas, ça ne changera rien car tu ne pourras pas exécuter ton code (et donc les printf que tu placerais).

Donne nous ta commande de compilation à tout hasard...
0
j'ai envoyé la commande à fiddy (gcc az.c -o az)
Vous pouvez prendre votre temps mais ne tardez pas trop car je dois finaliser avant le début de la semaine prochaine!!
Si je peux avoir une réponse cohérente dans la journée, je vous serai très reconnaissant.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
10 juil. 2008 à 10:54
Quand tu postes du code, utilise la balise "conservation de la mise en forme du texte" (à côté de souligné) car là ton code est illisible. En plus, il y a plein de petites bêtises du genre { if au lieu de if {.
Je t'ai aussi demandé ta commande de compilation.

Cdt
0
J'ai enregistré mon programme dans mes Documents.
la commande c'est bien gcc az.c -o az?

Je vous redonne le code :

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define Solvabilite_acquise 1
#define Demande_de_Caution_Solidaire 2
#define Impossible 3

char* status[6]={"CDI_hors_ess_ou_preavis_lic","CDD_CNE_ou_CDI_essai","Etudiant","TNS","Retraités","enplace_depuis_ plus_de_Douze_mois_sans_incident_paiement"};
//donne des valeurs allant de 0 à 5 aux différents status scanf("%s",&status[0]);scanf("%s",&status[1]);scanf("%s",&status[2]);scanf("%s",&status[3]);scanf("%s",&status[4]);scanf("%s",&status[5]);scanf("%s",&statut1);scanf("%s",&statut2); PB d'allocation pour status[i], i=0,...,5?


colocation(int R[],int L,char *statut1,char *statut2)
{ int i,h,k;
  
 
/* Cas 2 En place */

   { if(strcmp(statut1,statut2) && strcmp(statut2,status[5]))
      printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");



/* Cas 1 En place avec n'importe qui */

   else { if(strcmp(statut1,status[5]) && !strcmp(statut2,status[5]))
  printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");

          else { if(strcmp(statut2,status[5]) && !strcmp(statut1,status[5]))
           printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");
               }
         }
   }
/* Cas 2 Etudiants*/

 { if(strcmp(statut1,statut2) && strcmp(statut2,status[2]))
     printf("Demande de Caution Solidaire\n");

/* 1 Etudiant avec quelqu'un ayant un autre statut */

   else if((strcmp(statut1,status[2]) && !strcmp(statut2,status[2])) || ((strcmp(statut2,status[2]) && !strcmp(statut1,status[2]))))

     {  { ((R[1]>3*L && R[0]>2*L) || (R[0]>3*L && R[1]>2*L))? 1  : exit(1) ;
          (R[1]<2*L && R[0]<2*L)? 3 : exit(1);
        }
     if((strcmp(statut1,status[2]) && strcmp(statut2,status[1])) || (strcmp(statut2,status[2]) && strcmp(statut1,status[1])))
       (R[1]>2*L || R[0]>2*L)? 2 : 3;
     }

 }



while((h=*status[0]) || (h=*status[3]) || (h=*status[4]))


/* Cas 2 C.D.I(k=0), 2 T.N.S(k=3), 2 Retraités(k=4) */

 { if(strcmp(statut1,statut2) && strcmp(statut2,status[h]))

   { if(R[0]>3*L || R[1]>3*L)
       printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");
        else
	 { if(R[0]<2*L && R[1]<2*L)
            printf("Impossibilité de soumettre votre dossier\n"); 

      else { if((R[0]<2*L && R[1]>=2*L && R[1]<3*L) || (R[1]<2*L && R[0]>=2*L && R[0]<3*L)) 
              printf("Demande de Caution Solidaire\n"); 
           }
         }
     }
  }


  while((k=*status[0]) || (k=*status[3]) || (k=*status[4]))
    



/* Cas 1 C.D.I(k=0), 1 T.N.S(k=3), 1 Retraité(k=4) avec n'importe qui */

  {  if((strcmp(statut1,status[k]) && !strcmp(statut2,status[k]) && !strcmp(statut2,status[1]) && !strcmp(statut2,status[5])) || (strcmp(statut2,status[k]) && !strcmp(statut1,status[k]) && !strcmp(statut1,status[1]) && !strcmp(statut1,status[5])))

       { if(R[0]<2*L && R[1]<2*L)
           printf("Impossibilité de soumettre votre dossier\n"); 

         { while((R[0]<2*L && R[1]>=2*L) || (R[0]<2*L && R[1]>=2*L))
	   { (k=0)? 2 : 3;
	     (k=3)? 2 : 3;
	     (k=4)? 2 : 3;
	   }
	 }
        { while((R[0]>3*L && (R[1]<=3*L || R[1]>=2*L || R[1]<2*L)) || (R[1]>3*L && (R[0]<=3*L || R[0]>=2*L || R[0]<2*L)))
           { (k=0)? 1 : 2;
	     (k=3)? 1 : 2;
	     (k=4)? 1 : 2;
	
	   }
         }
       }
  }



/* Cas 2 C.D.D */

    { if(strcmp(statut1,statut2) && strcmp(statut2,status[1]))
       {  if(R[0]<2*L && R[1]<2*L) 
            printf("Impossibilité de soumettre votre dossier\n");
	   else{ if((R[0]<2*L && R[1]>2*L) || (R[1]<2*L && R[0]>2*L))
             printf("Demande de Caution Solidaire\n");
               }
       }

/* Cas 1 C.D.D avec n'importe qui sauf En place : cas de soumission */

else { if((strcmp(statut1,status[1]) && !strcmp(statut2,status[1]) && !strcmp(statut2,status[5])) || (strcmp(statut2,status[1]) && !strcmp(statut1,status[1]) && !strcmp(statut1,status[5])))

      { (R[1]<2*L || R[0]<2*L)? 3 : exit(2);
        while(((R[0]<2*L || R[0]>=2*L || R[0]>3*L) && R[1]>=3*L) ||((R[1]<2*L || R[1]>=2*L || R[1]>3*L) && R[0]>=2*L))
	  printf("Demande de Caution Solidaire\n"); 


        if(strcmp(statut1,status[1]) && strcmp(statut2,status[2]))
        { while((R[0]<2*L && R[1]>=2*L))
	   printf("Impossibilité de soumettre votre dossier\n"); 
	
	  while(R[0]>=2*L || R[1]>=2*L)
	   printf("Demande de Caution Solidaire\n");
	}
      
       }
     }
   }
}








main()
{ int i;int L; int *R;
  char *status[6];char *statut1;char *statut2;

statut1=(char*)malloc(6*(sizeof(char)));
statut2=(char*)malloc(6*(sizeof(char)));

L=(int)malloc(10000*(sizeof(int*)));
R[0]=(int) malloc(10000*(sizeof(int*)));
R[1]= (int) malloc(10000*(sizeof(int*)));

   printf("Indiquer la situation du premier colocataire : %s",statut1);
   scanf("%s",statut1);

   printf("Indiquer la situation du deuxième colocataire : %s",statut2);
   scanf("%s",statut2);

   printf("Indiquer le loyer du foyer : %d\n",L);
   scanf("%d",&L);

   printf("Indiquer le revenu du colocataire1 : %d\n",R[0]);
   scanf("%d",&R[0]);

   printf("Indiquer le revenu du colocataire2 : %d\n",R[1]);
   scanf("%d",&R[1]);

   colocation(R,L,statut1,statut2);
}
0
Comme je l'ai dis à Sri Lumpa, si tu peux m'envoyer une réponse au plus vite, ce serait top parce que moi, je ne vois plus ce que je dois faire de plus.
0