Corriger erreur

Fermé
firk - 19 juin 2008 à 10:19
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 - 20 juin 2008 à 10:12
Bonjour,

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

{ int cautsol( int r, int l) /*Examen de solvabilité du client : cas les plus simples*/
case (r>=3l)
printf("vous pouvez soumettre votre dossier\n"); /* ca=0; */
case(r<2l)
printf("Impossibilité de soumettre votre dossier\n");
case(r>2l && r<=3l)
printf("Demande de caution solidaire\n");
}

main()

{ int r; int l;
scanf("%d",&r);
scanf("%d",&l);
printf("votre revenu net est %d euros",r);
printf("votre loyer est de %d euros",l);
cautsol(r,l);
}

la console m'affiche
[insor@localhost Documents]$ gcc locat1.c *o locat1
gcc: *o: Aucun fichier ou répertoire de ce type
gcc: locat1: Aucun fichier ou répertoire de ce type
locat1.c:5: error: expected identifier or ‘(’ before ‘{’ token

18 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
19 juin 2008 à 10:21
Bonjour,

Et la question est ????

0
Rikkunter Messages postés 6023 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 9 novembre 2011 180
19 juin 2008 à 10:23
Eh, on est pas des machines où il faut passer l'erreur et les gens te la trouvent.

Mébon, t'as laissé le bonjour d'emblée, bel effort ;)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
19 juin 2008 à 10:27
Il a tout de même fait un effort : la console m'affiche c'est pas automatique ça ...

;o)
0
mich62120 Messages postés 631 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
19 juin 2008 à 10:27
Tu as mal mis ton acolade et tu utilises des cases sans switch, ou utilise des if:

 int cautsol( int r, int l){ /*Examen de solvabilité du client : cas les plus simples*/ 

if (r>=3l) 
printf("vous pouvez soumettre votre dossier\n"); /* ca=0; */ 
else{

     if(r<2l) 
      printf("Impossibilité de soumettre votre dossier\n"); 

      else{if(r>2l && r<=3l) 
            printf("Demande de caution solidaire\n"); 
           }
      }

return ??;//tu dois retourner quelque chose car tu as mis int cautsol  mais quoi ????si rien mettre void
} 

void main(){
 int r; int l; 
scanf("%d",&r); 
scanf("%d",&l); 
printf("votre revenu net est %d euros",r); 
printf("votre loyer est de %d euros",l); 
cautsol(r,l); 
} 
0
Merci pour ton indication , mais lors de l'exécution, j'obtiens seulement le cas vous pouvez soumettre le dossier!
Peux-tu m'indiquer comment je peux avoir les 3 cas?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
19 juin 2008 à 11:10
je suis peu etre aveugle mais pourquoi passe tu "int l" dans ta fonction alors que tu ne l'utilise pas ?
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
19 juin 2008 à 11:12
ah si c'est 3l et non 31 ok pardon
mais tu voudrais qu'il te marque :

vous pouvez soumettre votre dossier , Impossibilité de soumettre votre dossier Demande de caution solidaire

en meme temps ?
0
la console me donne par exemple:

3000
4500
votre loyer est de 3000 euros
votre revenu net est 4500 euros
vous pouvez soumettre votre dossier.

quelles que soient les données que je rentre, il s'affiche seulement "vous pouvez soumettre votre dossier"
0
mich62120 Messages postés 631 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
19 juin 2008 à 11:22
Je pense que tu dois mettre 3*l et non 3l .
Dsl j'avais pas fait attention;
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
19 juin 2008 à 11:23
en effet 3*l serai mieu ^^
0
Merci por le coup de main, PB réglé!
Au fait, pouvez-vous m'indiquer comment fait-on un tableau à une ligne défini comme suit :
valeurs comprises entre 0 et 9.

xxxxx xxxxx xxxxxxxxxxx xx.

J'arrive à afficher le tableau mais sans les espaces. j'aurai 23 valeurs colleés les unes derrière les autres, sans aucune aération!
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
19 juin 2008 à 12:11
avec une boucle
for(i=0; i<23 ;i++){ if(i==5 || i==10 || I==20)printf(" ");
printf("%d",tab[i]);
0
Merci mon ami, tu me tires encore d'affaire. J'ai un peu de mal au niveau des structures, peux-tu m'aider,stp?
A partir de ce dossier, je veux le faire en fonction du statut d'individus précis.

struct dossier
{ const char A={"3 derniers bulletins de salaire"};
const char B={"2 derniers avis d'imposition sur le revenu"};
const char C={"Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)"};
const char D={"Pensions ou allocations diverses"};
const char E={"Dernier décompte de la(les) caisse de retraite(s)"};
const char F={"Fiche de renseignements"};
const char G={"R.I.B, R.I.P ou R.I.C.E"};
const char H={"Pièce d'identité"};
const char I={"Carte d'étudiant"};
const char J={"Acte de Caution Solidaire"};
const char K={"Attestation d'assurance Habitation"};
scanf("%c,%c,%c,%c,%c,%c,%c,%c,%c,%c,%c",&dossier.A,&dossier.B,&dossier.C,&dossier.D,&dossier.E,&dossier.F,&dossier.G,
&dossier.H,&dossier.I,&dossier.J,&dossier.K);
};
0
mich62120 Messages postés 631 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
19 juin 2008 à 13:02
Je ne vois pas ce que tu veux faire.

Char est un caractère tu ne peux pas mettre des phrases dedans.

Ensuite si tu veux traiter tes variables il faut le faire dans une fonction de la structure, de plus si tu les mets const tu ne plus les changer.

Peux expliquer plus en détails le role de cette structure?

Mich
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
19 juin 2008 à 14:44
il a raison je pense que tu veux faire :
struct dossier
{ char*A;
char* B;
..
...
char *K
}

et apres tu fais une fonction

void init_struct(dossier * D){

/* et tu la remplis avec ton scanf */

scanf("%c,%c,%c,%c,%c,%c,%c,%c,%c,%c,%c",&dossier.A,&dossier.B,&dossier.C,&dossi­er.D,&dossier.E,&dossier.F,&dossier.G,
&dossier.H,&dossier.I,&dossier.J,&dossier.K);
}

Mais pas de code autre que declaration dans une structure
une structure est un type que tu creer a partir de type primitif ou d'autre struture que tu a declaré avant
donc QUE DES DECLARATION :)
0
mich62120 Messages postés 631 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 21 janvier 2010 6
19 juin 2008 à 14:55
Voila il t'a montrer la forme adequate d'une structure .
Attention pour des char* c'est %s.

Par contre a mon avis ce sont des fichiers que tu veux mettre dans les variables:

3 derniers bulletins de salaire (tu veux que A corresponde au trois bulletins eux même ou à la phrase "3 bulletins...?)
2 derniers avis d'imposition sur le revenu (idem)

Il faudrai donc faire des tableaux de fichiers et des méthodes d'ouverture.

Je pense que dans ce cas le C++ sera mieux pour traiter ce genre de cas.

Donne plus de détails sur ce que tu veux faire sinon on pourra rien faire pour toi.

Mich
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
19 juin 2008 à 14:59
oui desolé pour le %S j'ai fait un bete copier collé ^^

mais si c'est des fichier cela se fait tres bien aussi en C avec fopen et open après c'est au choix perso j'ai ma préférence pour le C

mais moi je pense juste qu'il veut regroupé des donné par le biais d'un structure et la stocké , donc tu peux faire un tableau de structure
0
Tu as tout à fait raison, kazouu.


Comment créer un tel tableau de structure?
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
19 juin 2008 à 15:22
tu sais combien de cases tu auras dans ce tableau ?
0
11 pour les 11 champs.
Je veux dans un premier temps lister ces champs, pour ensuite les répertorier selon la nature de l'individu.
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
19 juin 2008 à 15:29
non tu n'as pas compris ma question les 11 champs sont dans ta structure,

le but d'un tableau de structure c'est que dans chaque case on stock non pas tout les champs mais la structure elle même

donc ma question n'était pas combien de champ as tu dans ta structure mais bien est ce que tu sais combien de structure tu devras stocker dans ton tableau ?
0
6 structures pour 6 catégories d'individus!!
le 1er : 9 champs. le 2ème 9, le 3ème 8, le 4ème 8, le5ème 9, le 6ème 11.
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
19 juin 2008 à 16:35
donc dans ton tableau de stockage tu n'auras que 6 places on est d'accord ?
0
T'as vu tout juste!
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
20 juin 2008 à 09:29
ben tu declare un

dossier D[6];

et donc dans chaqu'une de ses 6 cases tu peux stocker une structure entiere avec tout les champ par exemple

dossier bis;

D[i]=dossier


et tu pourras y acceder comme ceci D[i].B ou .C ou autre ...
0
j'avais procédé comme suit et je vois pas mon erreur :


{ struct dossier D
{
D.A={"3 derniers bulletins de salaire"};
D.B={"2 derniers avis d'imposition sur le revenu"};
D.C={"Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)"};
D.D={"Pensions ou allocations diverses"};
D.E={"Dernier décompte de la(les) caisse de retraite(s)"};
D.F={"Fiche de renseignements"};
D.G={"R.I.B, R.I.P ou R.I.C.E"};
D.H={"Pièce d'identité"};
D.I={"Carte d'étudiant"};
D.J={"Acte de Caution Solidaire"};
D.K={"Attestation d'assurance Habitation"};
}

};


dans la fonction main() :




case (*statut[1]==1)
{ if(struct dossier statut[1]==1)
printf("Votre dossier est complet\n");

}

case (*statut[2]==1)
{ if(struct dossier statut[2]==1)
printf("Votre dossier est complet\n");

}

case (*statut[3]==1)
{ if(struct dossier statut[3]==1)
printf("Votre dossier est complet\n");

}

case (*statut[4]==1)
{ if(struct dossier statut[4]==1)
printf("Votre dossier est complet\n");

}
case (*statut[5]==1)
{ if(struct dossier statut[5]==1)
printf("Votre dossier est complet\n");

}

case (*statut[6]==1)
{ if(struct dossier statut[6]==1)
printf("Votre dossier est complet\n");

}

/*Mettre dans main() si j'ai tel document(==1), return(TRUE), else return(FALSE);de cette façon, on peut vérifier le nombre de documents à notre disposition*/

struct dossierstatut[1]
{ dossierstatut[1].A;
dossierstatut[1].B;
dossierstatut[1].C;
dossierstatut[1].D;
dossierstatut[1].F;
dossierstatut[1].G;
dossierstatut[1].H;
dossierstatut[1].J;
dossierstatut[1].K;
};

struct dossier statut[2]
{ statut[2].A;
statut[2].B;
statut[2].C;
statut[2].D;
statut[2].F;
statut[2].G;
statut[2].H;
statut[2].J;
statut[2].K;
}

struct dossier statut[3]
{ statut[3].C;
statut[3].D;
statut[3].F;
statut[3].G;
statut[3].H;
statut[3].I;
statut[3].J;
statut[3].K;
}

struct dossier statut[4]
{ statut[4].B;
statut[4].C;
statut[4].D;
statut[4].F;
statut[4].G;
statut[4].H;
statut[4].J;
statut[4].K;
}

struct dossier statut[5]
{ statut[1].A;
statut[1].B;
statut[1].D;
statut[1].E;
statut[1].F;
statut[1].G;
statut[1].H;
statut[1].J;
statut[1].K;
}

struct dossier statut[6]
{ statut[6].A;
statut[6].B;
statut[6].C;
statut[6].D;
statut[6].E;
statut[6].F;
statut[6].G;
statut[6].H;
statut[6].I;
statut[6].J;
statut[6].K;
}
0
kazouu Messages postés 466 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 24 juillet 2008 12
20 juin 2008 à 10:12
les indices des tableaux en C commence a 0 donc si t'as un tableau a 6 cases c T[0] jusqu'a T[5]
0