Programme en C

Fermé
golgotha1 Messages postés 7 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 16 juillet 2008 - 16 juil. 2008 à 13:35
golgotha1 Messages postés 7 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 16 juillet 2008 - 16 juil. 2008 à 15:17
Bonjour,

Pouvez-vous m'aider en urgence : j'ai un programme composé de 2 personnes et j'ai répertorié
plusieurs possibilités et selon les cas, j'obtiens 1 des 3 phrases suivantes :
Vous remplissez... assurance.
Caution Solidaire
Impossible.

1)Problème d'allocation : pour le loyer L, les revenus R[0], R[1].Lors de l'exécution du programme,
avant de rentrer mes valeurs, il s'affiche des valeurs bizarres.

2)Cas 2 En place, 1 En place avec qqn, 2 Etudiants :

Je veux que le programme m'affiche, quelle que soit la situation financière des 2 agents et
quelle que soit le montant du loyer, je dois avoir :

Vous remplissez... assurance pour les cas 2 En place et 1 En place avec qqn.
Caution Solidaire pour le cas 2 Etudiants.

3) Cas 1 CDD avec 1 CDI, ou 1 TNS, ou 1Retraité :

Je n'arrive pas à obtenir le cas où si le revenu du CDI est <2*L et lorsque le revenu du CDD est
>=2*L ou >3*L, je dois voir afficher Impossible.

4 réponses

golgotha1 Messages postés 7 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 16 juillet 2008
16 juil. 2008 à 13:42
J'ai oublié de livrer mon code, désolé :

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>



char* status[]={"CDI_hors_ess_ou_preavis_lic","CDD_CNE_ou_CDI_essai","Etudiant","TNS","Retraités","enplace_depuis_ plus_de_Douze_mois_sans_incident_paiement"};



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

 { if(strcmp(statut1,status[5]) && strcmp(statut2,status[5]))
   { if((R[0]<2*L || R[0]>=2*L || R[0]>3*L) && (R[1]<2*L || R[1]>=2*L || R[1]>3*L))
      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])) || (strcmp(statut2,status[5]) && !strcmp(statut1,status[5])))
           if(((R[0]<2*L) || (R[0]>=2*L) || (R[0]>3*L)) && ((R[1]<2*L) || (R[1]>=2*L) || (R[1]>3*L)))
             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]))
    { if((R[0]<2*L || R[0]>=2*L || R[0]>3*L) && (R[1]<2*L || R[1]>=2*L || R[1]>3*L))
     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]))))

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

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

       }
    }
 }


{

/* Cas 2 C.D.I */

  if(strcmp(statut1,status[0]) && strcmp(statut2,status[0]))

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

/* Cas 1 C.D.I avec n'importe qui */

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

        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)))
         { printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");
	    printf("Demande de Caution Solidaire\n");
	
	 }

    }
   }
 }



{


/* Cas 2 T.N.S */

  if(strcmp(statut1,status[3]) && strcmp(statut2,status[3]))

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

/* Cas 1 T.N.S avec n'importe qui */

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


	

        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)))
         { printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");
	    printf("Demande de Caution Solidaire\n");
	 }

    }
   }
 }


{


/* Cas 2 Retraités */

  if(strcmp(statut1,status[4]) && strcmp(statut2,status[4]))

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

/* Cas 1 Retraité avec n'importe qui */

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

        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)))
         { printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");
	    printf("Demande de Caution Solidaire\n");
	 }

    }
   }
}

/* 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]) && statut2!=status[5]) || (strcmp(statut2,status[1]) && !strcmp(statut1,status[1]) && statut1!=status[5]))

      { if(R[1]<2*L && R[0]<2*L)
          printf("Impossibilité de soumettre votre dossier\n");
        while((R[0]<2*L || R[0]>=2*L || R[0]>3*L && R[1]>=2*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 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))); /* A vérifier -> problème d'allocation persiste(pour L,R[0],R[1])*/
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
BabaRock Messages postés 167 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 2 décembre 2009 8
16 juil. 2008 à 13:42
Tu pourrais nous montrer l'intégralité de ton code? Sinon je doute que qui que ce soit ait vraiment envie de développer tout le programme ....
0
golgotha1 Messages postés 7 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 16 juillet 2008
16 juil. 2008 à 13:45
Je pars en pause déjeuner, là, je reviens à 15h ou 15h10.

D'ici là, peux-tu m'aider, j'ai vraiment besoin que l'on m'aide.
Merci, et à tout à l'heure.
0
BabaRock Messages postés 167 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 2 décembre 2009 8 > golgotha1 Messages postés 7 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 16 juillet 2008
16 juil. 2008 à 15:06
Là pour le moment je suis un peu occupé. Mais si tu veux ce soir j'y jetterai un coup d'œil.
0
alleurs1 Messages postés 251 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 7 juillet 2013 12
16 juil. 2008 à 15:10
Bonjour pouvez vous me dire à quoi sa sert ce code cité ci dessous ?
0
BabaRock Messages postés 167 Date d'inscription mercredi 2 juillet 2008 Statut Membre Dernière intervention 2 décembre 2009 8
16 juil. 2008 à 15:11
Ben lis l'intégralité du post et tu comprendras
0
golgotha1 Messages postés 7 Date d'inscription mardi 15 juillet 2008 Statut Membre Dernière intervention 16 juillet 2008
16 juil. 2008 à 15:17
Je vous ai exposé les problèmes notés 1, 2, 3.
Je veux juste simplement que l'on me dise comment corriger mon programme.
Le but du programme est de mettre en situation la solvabilité d'un foyer fiscal pour ce qui est de 2 agents, répertoriés en 6 catégories, et suivant la situation, pouvoir dire si votre cas est favorable, ou bien si vous pouvez adhérer à notre société via 1 Caution Solidaire, ou bien si cela est Impossible.

Il ne faut pas regarder le revenu net global du foyer mais voir le revenu net de chaque agent; bref, j'ai affaire à 1 pb de logique. Je veux juste que qqn se préoccupe du codage, en fait.
0
alleurs1 Messages postés 251 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 7 juillet 2013 12
16 juil. 2008 à 15:15
ok jai compris merci quand meme
0