A voir également:
- Error: expected declaration or statement at end of input
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Correction manuel - Forum Études / Formation High-Tech
- Frequence programme national ✓ - Forum Messagerie
- Programme demarrage windows 10 - Guide
- Programme bonjour ✓ - Forum Windows
5 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 816
1 juil. 2008 à 11:27
1 juil. 2008 à 11:27
Salut
Pour le 1, tu dois faire un tableau deux dimensions.
Pour le 2, tu dois utiliser strcmp pour comparer deux chaines de caractères. Du genre : if(strcmp("Etudiant",status[i])
Je te renvoie sur man strcmp pour son utilisation en détail.
Pour le 3,
Cdt
Pour le 1, tu dois faire un tableau deux dimensions.
char status[][50]={"CDI_hors_ess_ou_preavis_lic","CDD_CNE_ou_CDI_essai","Etudiant","TNS","Retraités"
,"Douze_mois_sans_incident_paiement"};
Pour le 2, tu dois utiliser strcmp pour comparer deux chaines de caractères. Du genre : if(strcmp("Etudiant",status[i])
Je te renvoie sur man strcmp pour son utilisation en détail.
Pour le 3,
#define Solvabililite_acquise 1 #define Demande_de_Caution_Solidaire 2 #define Impossible 3
Cdt
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 816
1 juil. 2008 à 11:42
1 juil. 2008 à 11:42
C'est pas tu n'as pas besoin de passer par switch, mais plutôt que ça ne peut pas marcher avec switch.
Je comprends pas vraiment ce que tu veux faire avec ta fonction coloc ?
Le guillemet permet de délimiter une chaine de caractère.
PS : Attention, j'ai fait une erreur avec " dans mon premier post.
Je comprends pas vraiment ce que tu veux faire avec ta fonction coloc ?
Le guillemet permet de délimiter une chaine de caractère.
PS : Attention, j'ai fait une erreur avec " dans mon premier post.
disons que je veux étudier le cas à deux colocataires, soit ayant tous les deux les mêmes statuts, soit avec des statuts différents, et voir en fonction du montant du loyer, s'ils peuvent répondre à mes attentes.
Pour cela, je dois énumérer beaucoup de cas. Je pourrais t'envoyer ce soir le tableau qui récapitule les situations selon les statuts.(il y a en effet beaucoup de combinaisons à établir, je n'ai fait que les cas les plus simples).
Pour cela, je dois énumérer beaucoup de cas. Je pourrais t'envoyer ce soir le tableau qui récapitule les situations selon les statuts.(il y a en effet beaucoup de combinaisons à établir, je n'ai fait que les cas les plus simples).
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 816
1 juil. 2008 à 11:53
1 juil. 2008 à 11:53
Oui mais tu attends qu'elle fasse quoi ta fonction coloc ?
Ecris le code en C, ou les étapes en français que je vois mieux tes attentes.
Ecris le code en C, ou les étapes en français que je vois mieux tes attentes.
Je n'ai pas encore tout rectifié, mais je te montre une partie du code ;
colocation(int R[],int L)
{ int i,h,k;
for(i=0;i<2;i++)
scanf("%d",&R[i]);
switch(status){
{ case(status[1]==status[2]=*status[5]):/* Cas 2 En place(les 2 premiers case) */
printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");break;
}
case(status[1]=*status[5] && status[2]!=status[1]):/* Cas 1 En place avec n'importe qui */
printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");break;
cas un peu plus complexes :
//Etudiant avec quelqu'un ayant un autre statut
case(status[1]=*status[2] && status[2]!=*status[2] || status[2]=*status[2] && status[1]!=*status[2]):
{ (R[2]>3*L || R[1]>3*L)? 1 : 2 || 3;
(R[2]<2*L || R[1]<2*L)? 3 : exit(1);
}
break;
case(status[1]=*status[k] && status[2]!=status[1] && status[2]!=*status[5]):/* Cas 1 C.D.I avec n'importe qui*/
{
while( R[1]<2*L && R[2]<=3*L)
{ (k=0)? 3 : 2;
(k=3)? 3 : 2;
(k=4)? 3 : 2;
break;
}
while( R[1]>3*L && (R[2]<=3*L || R[2]>=2*L || R[2]<2*L) )
{ (k=0)? 1 : 2;
(k=3)? 1 : 2;
(k=4)? 1 : 2;
break;
}
}
}
colocation(int R[],int L)
{ int i,h,k;
for(i=0;i<2;i++)
scanf("%d",&R[i]);
switch(status){
{ case(status[1]==status[2]=*status[5]):/* Cas 2 En place(les 2 premiers case) */
printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");break;
}
case(status[1]=*status[5] && status[2]!=status[1]):/* Cas 1 En place avec n'importe qui */
printf("Vous remplissez les conditions d'acceptation auprès de notre assurance\n");break;
cas un peu plus complexes :
//Etudiant avec quelqu'un ayant un autre statut
case(status[1]=*status[2] && status[2]!=*status[2] || status[2]=*status[2] && status[1]!=*status[2]):
{ (R[2]>3*L || R[1]>3*L)? 1 : 2 || 3;
(R[2]<2*L || R[1]<2*L)? 3 : exit(1);
}
break;
case(status[1]=*status[k] && status[2]!=status[1] && status[2]!=*status[5]):/* Cas 1 C.D.I avec n'importe qui*/
{
while( R[1]<2*L && R[2]<=3*L)
{ (k=0)? 3 : 2;
(k=3)? 3 : 2;
(k=4)? 3 : 2;
break;
}
while( R[1]>3*L && (R[2]<=3*L || R[2]>=2*L || R[2]<2*L) )
{ (k=0)? 1 : 2;
(k=3)? 1 : 2;
(k=4)? 1 : 2;
break;
}
}
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 816
1 juil. 2008 à 13:18
1 juil. 2008 à 13:18
A quoi correspond L et R ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 816
1 juil. 2008 à 13:50
1 juil. 2008 à 13:50
Ok, je pense avoir compris.
Je pense que ça serait mieux de pas utiliser char [][50] pour le statut mais plutôt :
Je pense que ça serait mieux de pas utiliser char [][50] pour le statut mais plutôt :
#define NB_COLLOC 5
#define CDI_Hors_Essais 1
#define ETUDIANT 2
#define TNS 3
etc
int status[]={CDI_HORS_ESSAIS,ETUDIANT,TNS};
Le remplissage de R serait mieux dans une autre fonction comme une fonction d'admin :
int R[NB_COLLOC];
int i;
for(i=0;i<NB_COLLOC;i++){
printf("Collocataire %d",i);
scanf("%d",R+i);
}
void colloc(int *R, int L){
int i;
for(i=0;NB_COLLOC;i++){
/*Ici tu mets tes conditions pour tes colloc */
}
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 816
>
firk
1 juil. 2008 à 16:15
1 juil. 2008 à 16:15
Ah ? Donc j'ai pas bien compris ce que tu voulais. Je croyais que status[i] te retourne le statut du ième colocataire.
Dans ce cas pourquoi tu fais : if(status[1]==status[2]) etc, puisque les status tu les connais au début ? oO
Dans ce cas pourquoi tu fais : if(status[1]==status[2]) etc, puisque les status tu les connais au début ? oO
firk
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 juil. 2008 à 17:20
1 juil. 2008 à 17:20
Non, t'as bon, mais nb_coloc si j'ai bien compris correspond au nombre de colocataires.
Et puis avec tes préprocesseurs define, je rencontre encore le problème de missing whitespace after the macro name. Réponds vite, stp.
Et puis avec tes préprocesseurs define, je rencontre encore le problème de missing whitespace after the macro name. Réponds vite, stp.
1 juil. 2008 à 11:38
Si j'extrapole la situation à 2 ou 3 colocataires, avec un revenu précis, et un loyer fixe, comment puis-je formaliser ce cas.
Je suis parti sur la fonction coloc(int R[ ], int L), et dans la main(), j'appelle coloc(&R[2],L) et l'erreur suivante s'affiche :
expected declaration or statement at end of input
A quoi correspond ton "?
1 juil. 2008 à 11:41
1 juil. 2008 à 11:42
Si j'extrapole la situation à 2 ou 3 colocataires, avec un revenu précis, et un loyer fixe, comment puis-je formaliser ce cas.
Je suis parti sur la fonction coloc(int R[ ], int L), et dans la main(), j'appelle coloc(&R[2],L) et l'erreur suivante s'affiche :
expected declaration or statement at end of input
A quoi correspond ton "?