Je tente de construire une calculatrice de formulaire / GPA pour la classe, mais lors de la saisie de la quantité de classes à l'aide de Scanf, la sortie est de 6 487 576, peu importe ce que j'entre. aide s'il vous plaît! p> p>
3 Réponses :
Lorsque vous utilisez Essayer Ceci: p> % i code> avec scanf () code>, il peut vous permettre de saisir des nombres hexadécimaux et octals également (ce n'est pas un problème comme expliqué ici ).
Cependant, vous ne devriez pas utiliser & code> tout en utilisant printf () code> car il affichera l'emplacement de la mémoire de la variable au lieu de la valeur stockée.
printf ("Vous avez entré% i classes! \ n", & c) code> sorties L'adresse de la variable c code> (& c prend l'adresse), c'est-à-dire qu'elle génère des résultats le numéro de la cellule de mémoire. Puisque vous voulez transmettre la valeur de la variable, vous ne devez utiliser l'opérateur de prise d'adresse d'une variable & code>.
Il y a deux problèmes ici. Premièrement, vous devez inclure les en-têtes suivants:
int opt = 0; int c = 0;
Veuillez poster exemple de reproductible minimal sans beaucoup de
printf code>. Vous avez deux appels descanf code>. Lequel de deux ne fonctionne pas?La fonction
scanf code> renvoie une valeur. Pourquoi l'ignorez-vous? Vous devriez toujours vérifier la valeur de retour pour savoir s'il correspond à votre attente ..Si vous souhaitez imprimer une adresse, utilisez le format
% p code> et convertissez le pointeur en un "code> Void" / code> Pointeur avec une distribution:printf ("adresse de c est% p \ n ", (vide *) & c); code>Quel compilateur utilisez-vous qui n'a pas averti de
Printf ("Vous avez entré% \ n classes! \ N", & c); code>?"Peu importe ce que vous entrez" - alors qu'est-ce que a fait i> vous entrez?