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 ().