Warning: format specifies type 'int *' but the argument has
Résolu
brc
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je débute dans le codage, j'essaye de faire exécuter cette fonction mais je n'y arrive pas.
Pouvez-vous m'aider s'il vous plaît ?
Je débute dans le codage, j'essaye de faire exécuter cette fonction mais je n'y arrive pas.
#include <stdio.h>
int main(int argc, char *argv[3]) {
int age = 0;
printf("entrez votre age :");
scanf("%d", age);
if (age > 18) {
printf(" Vous êtes majeur !\n");
} else if (age <= 17) {
printf("Vous êtes mineur !\n");
}
return 0;
}
Pouvez-vous m'aider s'il vous plaît ?
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
as-tu lu la documentation de scanf(), ou examiné d'autres exemples?
n'hésite pas à partager le message d'erreur complet.
merci, quand tu partages du code, d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code -
Bonjour,
Il y a plusieurs choses qui ne vont pas :- Le prototype de main s'écrit soit
int main(){ ... }soitint main(int argc, char **argv) { ... }; - Le
scanf
est incorrect : il ne peut pas sauver la valeur lue dansage
car tu passes la variableage
au lieu de passer son adresse&age
; - Le test fait dans le
else
n'est pas faux, mais inutile car il est toujours vrai. Il engendre donc une vérification certes peu coûteuse, mais inutile. - Essaye d'être vigilant au niveau de l'indentation.
- Essaye d'être vigilant au niveau des espaces (derrière le ":" par exemple), aux majuscules, et aux accents.
Une fois ces corrections apportées, ton programme devient :
#include <stdio.h> int main(){ int age = 0; printf("Entrez votre âge : "); scanf("%d", &age); if (age >= 18) { printf("Vous êtes majeur !\n"); } else { printf("Vous êtes mineur !\n"); } return 0; }
Bonne chance
EDIT : corrigé pour tenir compte des remarques de [Dal]-
L'algorithme est faux également, car une personne qui a 18 ans est majeure, et non pas mineure.
Le test devrait donc êtreif (age >= 18)
ouif (age > 17)
et non pasif (age > 18)
, pour obtenir tous les âges correspondant à une personne majeure. Ensuite, comme mamiemando le propose, un simpleelse
suffit pour capturer tous les autres cas, qui correspondent nécessairement à des âges de minorité.
- Le prototype de main s'écrit soit