Problème : tester en C
firk
-
firk -
firk -
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?
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?
Configuration: Linux Mandriva Firefox 2.0.0.13
4 réponses
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);
}
#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);
}
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
Je t'ai aussi demandé ta commande de compilation.
Cdt
J'ai enregistré mon programme dans mes Documents.
la commande c'est bien gcc az.c -o az?
Je vous redonne le code :
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);
}
Je fais quoi alors?