Warning: format specifies type 'int *' but the argument has
Résolu/Fermé
brc
-
Modifié le 15 mars 2022 à 12:08
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 1 avril 2022 à 16:07
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 1 avril 2022 à 16:07
A voir également:
- Format specifies type 'int' but the argument has type 'int *'
- Warning zone telechargement - Accueil - Services en ligne
- Quota warning free - Guide
- Pcl xl error warning illegal media type - Forum Imprimante
- Téléchargement direct : les bonnes adresses des sites pirates - Accueil - Outils
- Cpu fan fail warning control - Forum Windows
2 réponses
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Ambassadeur
1 557
14 mars 2022 à 20:38
14 mars 2022 à 20:38
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
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
mamiemando
Messages postés
33435
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
18 décembre 2024
7 809
Modifié le 1 avril 2022 à 16:19
Modifié le 1 avril 2022 à 16:19
Bonjour,
Il y a plusieurs choses qui ne vont pas :
Une fois ces corrections apportées, ton programme devient :
Bonne chance
EDIT : corrigé pour tenir compte des remarques de [Dal]
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]
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
Modifié le 1 avril 2022 à 14:55
Modifié le 1 avril 2022 à 14:55
L'algorithme est faux également, car une personne qui a 18 ans est majeure, et non pas mineure.
Le test devrait donc être
Le test devrait donc être
if (age >= 18)ou
if (age > 17)et non pas
if (age > 18), pour obtenir tous les âges correspondant à une personne majeure. Ensuite, comme mamiemando le propose, un simple
elsesuffit pour capturer tous les autres cas, qui correspondent nécessairement à des âges de minorité.
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 094
>
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 avril 2022 à 16:07
1 avril 2022 à 16:07
Et, en C, si on veut écrire une forme de main qui n'accepte pas de paramètres, il faut écrire
int main(void)en toute rigueur.