Lorsque je saisie la valeur de base, il ne sera pas reconnu d'abord dans C
#include <stdio.h> main(void) { float base, height, area; printf("area of triangle=?\n"); printf("base="); scanf("%f\n", &base); printf("height="); scanf("%f\n", &height); area = base*height / 2; printf("area = %f\n", area); return 0; }
3 Réponses :
Scanf en utilisant uniquement le format
scanf("%f",&base);
Vous devez expliquer le changement que vous avez fait et pourquoi.
Vous avez 2 problèmes principaux dans votre code.
(1) strong> n'inclut pas (2) strong> valide chaque entrée d'utilisateur par vérifier le retour em> fort> de la fonction d'entrée utilisée. Que se passe-t-il si l'utilisateur atteint pour la clé '\ n' code> dans votre spécificateur de format. Format Spécificateurs tels que
"% F" Code> Skip Whitespace em> par défaut. Ainsi, utilisez (sous réserve de n ° 2): p>
'4' code> par cliquez sur
'r' code> mon erreur? Que se passe-t-il alors? (S'il s'agit du comportement du 1er chiffre - indéfini lorsque vous supposez aveuglément l'entrée réussie). Au lieu de cela, validez le retour, par exemple P>
$ ./bin/trianglearea
area of triangle=?
base=3
height=4
area = 6.000000
printf("base="); scanf("%f", &base); printf("\n"); printf("height="); scanf("%f", &height); printf("\n");
Vous devez expliquer les changements que vous avez faits et pourquoi.
Imprimer la nouvelle ligne après Scanf ().