Non exécution d'une condition en C
firk
-
firk -
firk -
Bonjour,
J'ai répertorié différentes combinaisons pour 2 personnes suivant leur attribut, leur statut, leur situation financière.
Mon problème réside dans le fait que lorsque je teste le programme, si le loyer vaut 1000, et que les 2 personnes ont chacune un revenu strictement inférieur à 2*1000, alors il devrait s'afficher : Impossibilité de soumettre votre dossier.
Au lieu de ce message, il s'affiche :
Vous remplissez les conditions d'acceptation auprès de notre assurance.
Demande de caution solidaire.
Erreur de segmentation.
Comment je peux résoudre ce problème?
P.S : J'ai livré mon code(voir problème tester en C) ce matin, mais je n'ai toujours pas de réponse!
J'ai répertorié différentes combinaisons pour 2 personnes suivant leur attribut, leur statut, leur situation financière.
Mon problème réside dans le fait que lorsque je teste le programme, si le loyer vaut 1000, et que les 2 personnes ont chacune un revenu strictement inférieur à 2*1000, alors il devrait s'afficher : Impossibilité de soumettre votre dossier.
Au lieu de ce message, il s'affiche :
Vous remplissez les conditions d'acceptation auprès de notre assurance.
Demande de caution solidaire.
Erreur de segmentation.
Comment je peux résoudre ce problème?
P.S : J'ai livré mon code(voir problème tester en C) ce matin, mais je n'ai toujours pas de réponse!
A voir également:
- Non exécution d'une condition en C
- Excel cellule couleur si condition texte - Guide
- Excel condition ou - Guide
- Le service spouleur d'impression local n'est pas en cours d'exécution - Guide
- Il permet l’exécution des logiciels applicatifs et gère l’utilisation des ressources matérielles (mémoire, processeur, périphériques). - Forum Windows 10
- Excel reporter des données sur une autre feuille avec conditions ✓ - Forum Excel
Excuse-moi de ne t'avoir pas répondu plus tôt, mais je n'ai pas utilisé d'ordinateur depuis 18h30.
J'ai déjà livré mon code, mais je te le redonne :
#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","CDD_CNE_ou_CDI_essai","Etudiant","TNS","Retraité","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,status[5]) && 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,status[2]) && 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(h=0), 2 T.N.S(h=3), 2 Retraités(h=4) */ if(strcmp(statut1,status[h]) && 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,status[1]) && 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 dominé */ 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,h,k;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); }