Hé les gars ... c'est le débutant à nouveau :) Je suis en train de mettre en place un programme qui va calculer l'aire d'un triangle ou un carré et ensuite inviter l'utilisateur s'ils souhaitent en calculer un autre. J'ai le code fonctionnant au point qu'il va calculer la zone de l'une ou l'autre forme, mais ne continue pas avec le reste du code. Par exemple, le carré est sélectionné, la zone est calculée et retourne à l'invite pour le côté du carré. Je suppose que c'est à nouveau le temps de boucler pour toujours, mais je ne sais pas comment arrêter la boucle de continuer indéfiniment.Alors que l'aide de la boucle
Heres mon code:
#include<stdio.h>
#include<math.h>
int main(void)
{
float sq_side, tri_base, tri_height, Area;
char shape, cont = 'Y';
printf("Please select the type of shape you desire to calculate the area for:\n");
printf(" \n");
printf(" Square = S Triangle = T \n");
printf(" ------- x \n");
printf(" : : x x \n");
printf(" : : x x \n");
printf(" ------- xxxxxxx \n");
printf(" \n");
printf("Please select either S or T:");
scanf("%c", &shape);
while (cont != 'n' && cont != 'N')
if (shape == 'S' || shape == 's')
{
printf("What is the length of the sides of the square?:\n");
scanf("%f", &sq_side);
Area = pow(sq_side,2);
printf("The area of the square is %.2f.\n", Area);
}
else if (shape == 'T' || shape == 't')
{
printf("What is the length of the base of the triangle?:\n");
scanf("%f", &tri_base);
printf("What is the height of the triangle?:\n");
scanf("%f", &tri_height);
Area = 0.5 * tri_base * tri_height;
printf("The area of the triangle is %.2f.\n", Area);
}
else
{
printf("Error: You have select an incorrect option.");
}
printf("Do you wish to calculate a new shape?");
fflush(stdin);
scanf("%c", &cont);
return(0);
}
Toujours vérifier la valeur de retour de 'scanf()'! En outre, vous ne documentez pas la réponse "N" ou "n". Méfiez-vous du code de conversion '% c'; il ne saute pas d'espace blanc, comme une nouvelle ligne, contrairement à la plupart des autres codes de conversion 'scanf()'. En général, évitez 'scanf()'; utilisez 'fgets()' et 'sscanf()' à la place. –