Erreur débutant fonction

Fermé
okokko Messages postés 551 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 14 mai 2019 - Modifié par baladur13 le 24/10/2015 à 17:20
okokko Messages postés 551 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 14 mai 2019 - 31 oct. 2015 à 14:24
Bonjour,

Je commence juste a apprendre le language C,sur

openclassroom et je bloque sur ça:

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

int main(int argc, char *argv[])
{
    int age = 30 &&  argent > 1000;

if (age > 30 &&  argent > 1000)
{
     printf("Bienvenue chez PicsouBanque \n");
}
else
{
     printf("Hors de ma vue,miserable \n");
}

     return 0;
}


L 'erreur est:

||=== Build: Debug in Plusieurs conditions à la fois (compiler: GNU GCC Compiler) ===|
E:\Projet CodeBlocks C\Plusieurs conditions à la fois\main.c||In function 'main':|
E:\Projet CodeBlocks C\Plusieurs conditions à la fois\main.c|6|error: 'argent' undeclared (first use in this function)|
E:\Projet CodeBlocks C\Plusieurs conditions à la fois\main.c|6|note: each undeclared identifier is reported only once for each function it appears in|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

J'ai bien compris que la fonction "argent" n'est pas déclarer,et

ma question est:Comment la déclarer?

Si quelqu'un peut m'aider,merci d'avance car je bloque.

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.

2 réponses

matmat42 Messages postés 124 Date d'inscription mercredi 15 février 2012 Statut Membre Dernière intervention 27 mars 2016 40
Modifié par matmat42 le 20/10/2015 à 21:48
Bonjour.

argent n'est pas une fonction dans ton code, ni même une variable en fait.
Je ne vois pas trop comment tu pourrais utiliser argent en tant que fonction...
Si tu veux la déclarer en tant que variable, fais comme ça :
int age = 30, argent = 1001;
(pour déclarer une variable, pas le droit de mettre > ou <, juste un signe = entre le nom et la valeur)
0
okokko Messages postés 551 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 14 mai 2019 11
Modifié par baladur13 le 24/10/2015 à 17:21
Bonjour matmat42 et merci,

en fait,c'est pour utiliser la condition "ou" ( || ),

ici:https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/14612-les-conditions

au paragraphe: "plusieurs conditions à la fois "

donc sur tes conseils j'ai fais ça:


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

int main(int argc, char *argv[])
{
    int age = 31, argent = 1001;

if (age > 30 || argent > 1000)
{
     printf("Bienvenue chez PicsouBanque !");
}
else
{
     printf("Hors de ma vue,miserable !");
}

     return 0;
}



et ça marche.La console me renvoi " Bienvenue chez PicsouBanque ! "

(Ils sont marrant a OpenClassRoom)

Donc dans se code j'utilise bien le "ou" ( || ) ?

Encore merci,ça vous semble peut-être évident,mais pour moi

qui débute,j'ai bloqué et je n'es personne a qui m'adresser directement.

Je ne suis que " premium " a OpenClassRoom.

Je continu donc mon apprentissage.

PS:j'aurai surement encore besoin de vos services (si possible et dispo).
0
jackdada Messages postés 77 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 10 février 2016 19
21 oct. 2015 à 19:43
Oui le ou ( || ) est bien effectuer.
Selon tes valeur d'argent et age, la condition if effectue les teste suivant :
-31 est il supérieur à 30? ce qui retourne vrais
-1001 est il supérieur à 1000? ce qui retourne vrais
Puis regarde si ce qui résulte de la fonction logique "ou" en faisant vrais ou vrais. Ceci résulte à vrais d'où l'entré dans la première condition et l'affichage de "Bienvenu chez picsoubanque"

Si maintenant tu change la valeur d'argent en 100 et laisse l'age à 31. Tu aura vrais sur le teste de l'age (31>30 est correcte) mais faux sur le teste de l'argent (100>1000 est incorrecte). La fonction logique est donc vrais ou faux, ce qui résulte à vrais, ça rentrera encore dans la première condition.

Les retour de la fonction logique "ou" sont les suivant:
faux || faux => faux
vrais || faux => vrais
faux || vrais => vrais
vrais || vrais => vrais

ceux de la fonction logique "et" sont les suivant:
faux && faux => faux
vrais && faux => faux
faux && vrais => faux
vrais && vrais => vrais

Essaye d'autre valeur pour age et argent afin de voire avec ton code les différent moment ou rentre dans la condition if et affiche "Bienvenu chez picsoubank" et les moment ou ça rentre dans le else et affiche "hors de ma vue"
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840 > jackdada Messages postés 77 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 10 février 2016
21 oct. 2015 à 23:04
Attention, tu confonds avec le | (ou binaire) / & (et binaire).
Le || (ou logique) / && (et binaire) ne vérifie pas systématiquement les 2 conditions.
Par exemple :
if (age > 30 || argent > 1000)
age > 30 est vrai. Vu qu'il s'agit d'un ou logique, argent > 1000 ne sera même pas exécuté.
Ici ça ne change rien, mais cela a son importance s'il y a une affectation dans la seconde condition.

Cdlt,
0
jackdada Messages postés 77 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 10 février 2016 19
23 oct. 2015 à 18:56
Ah je pensais que les 2 teste était effectuer, puis ensuite se faisait le "ou" ou "et" pour savoir si l'on rentrait ou non dans le if.
C'est d'ailleurs mieux pour le "ou" que le second test ne soit pas fait si le premier est vrais, au niveau du cout du programme.
0
okokko Messages postés 551 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 14 mai 2019 11 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
24 oct. 2015 à 15:51
ok,merci de de votre réponse,et comment fait on pour

vérifier les deux conditions ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840 > okokko Messages postés 551 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 14 mai 2019
Modifié par fiddy le 24/10/2015 à 17:14
@okokko,
A quoi ça sert de vérifier les deux conditions dans ton cas ?
Tu veux que age > 30 ou que argent > 1000. Dès lors que tu as age = 31, tu n'as pas besoin de vérifier age puisque le OU logique (||) sera forcément vrai.
0