Erreur débutant fonction

okokko Messages postés 551 Date d'inscription   Statut Membre Dernière intervention   -  
okokko Messages postés 551 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   40
 
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   Statut Membre Dernière intervention   11
 
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   Statut Membre Dernière intervention   19
 
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   Statut Contributeur Dernière intervention   1 846 > jackdada Messages postés 77 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   19
 
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   Statut Membre Dernière intervention   11 > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Contributeur Dernière intervention   1 846 > okokko Messages postés 551 Date d'inscription   Statut Membre Dernière intervention  
 
@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