-1
votes

Comment résoudre le problème duplicaté d'entrée dans c

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;
}


0 commentaires

3 Réponses :


0
votes

Scanf en utilisant uniquement le format

scanf("%f",&base);


1 commentaires

Vous devez expliquer le changement que vous avez fait et pourquoi.



1
votes

Vous avez 2 problèmes principaux dans votre code.

(1) strong> n'inclut pas '\ 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> xxx pré>

(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é '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


0 commentaires

-1
votes
printf("base=");
scanf("%f", &base);
printf("\n");
printf("height=");
scanf("%f", &height);
printf("\n");

2 commentaires

Vous devez expliquer les changements que vous avez faits et pourquoi.


Imprimer la nouvelle ligne après Scanf ().