-1
votes

C Programmation Scanf Assistance

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. xxx

aide s'il vous plaît!

c

5 commentaires

Veuillez poster exemple de reproductible minimal sans beaucoup de printf . Vous avez deux appels de scanf . Lequel de deux ne fonctionne pas?


La fonction scanf 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 et convertissez le pointeur en un "code> Void" / code> Pointeur avec une distribution: printf ("adresse de c est% p \ n ", (vide *) & c);


Quel compilateur utilisez-vous qui n'a pas averti de Printf ("Vous avez entré% \ n classes! \ N", & c); ?


"Peu importe ce que vous entrez" - alors qu'est-ce que a fait vous entrez?


3 Réponses :


1
votes

Lorsque vous utilisez % i avec scanf () , 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 & tout en utilisant printf () car il affichera l'emplacement de la mémoire de la variable au lieu de la valeur stockée.

Essayer Ceci: xxx


0 commentaires

1
votes

printf ("Vous avez entré% i classes! \ n", & c) sorties L'adresse de la variable c (& 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 & . xxx


0 commentaires

1
votes

Il y a deux problèmes ici. Premièrement, vous devez inclure les en-têtes suivants:

int opt = 0;
int c = 0;


0 commentaires