[C] Utilisation du switch

Fermé
annie - 21 oct. 2007 à 13:20
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 21 oct. 2007 à 14:19
Bonjour, j'ai du mal à utiliser le switch dans le programme suivant, l'utilisateur doit choisir entre 1 à 6 qui équivaut à des formes géométriques puis calculer la superficie, merci!!!

#include <stdlib.h>
#include <stdio.h>

void main (void)

{
int forme,a,b,c,r,t,l,p,e;

printf("\tcarree 1");
printf("\trectangle 2");
printf("\ttriangle 3");
printf("\tlosange 4");
printf("\ttrapeze 5");
printf("\tcercle 6");


printf("donner le numero de la forme");
scanf("%d",&forme);
switch (forme);
{
case 1: printf("entrez la longueur");
scanf("%d",&a);
c = a*a;
printf("superficie carre %d",c);
break;

case 2: printf("entrez la longueur");
scanf("%d",&a);
printf("entrez la largeur ");
scanf("%d",&b);
r = a*b;
printf("superficie rectangle est de %d",r);
break;
case 3: printf("entrez la base");
scanf("%d",&a);
printf("entrez la hauteur ");
scanf("%d",&b);
t = (a*b)/2;
printf("superficie triangle est de %d",t);
break;
case 4: printf("entrez la petite diagonale");
scanf("%d",&a);
printf("entrez la grande diagonale ");
scanf("%d",&b);
l = (a*b)/2;
printf("superficie losange est de %d",l);
break;
case 5: printf("entrez grand coter ");
scanf("%d",&a);
printf("entrez petit coter ");
scanf("%d",&b);
p = ((a + b) *bb)/2;
printf("superficie trapeze est de %d",p);
break;
case 6: printf("entrez rayon ");
scanf("%d",&a);
e = 3,14 * a;
printf("superficie cercle est de %d",e);
break;
default : printf("\nNumero forme non valide");
}
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
21 oct. 2007 à 14:10
Salut,

erreur1:
switch (forme);
il ne faut pas mettre point virgule apres switch
correct c'est comme ça
switch (forme)
erreur2:
case 5: printf("entrez grand coter ");
scanf("%d",&a);
printf("entrez petit coter ");
scanf("%d",&b);
p = ((a + b) *bb)/2;

fait attention à tes variables, ce n'est pas bb mais b
case 5: printf("entrez grand coter ");
scanf("%d",&a);
printf("entrez petit coter ");
scanf("%d",&b);
p = ((a + b) *b)/2; 
erreur3:
tu as oublié une accolade à l afin

Conseil : fait attention la mise en page
quand on exécute ton script on a
carree 1 rectangle 2 triangle 3 losange 4 trapeze 5 cercle 6donner le numero de la forme

ce n'est pas mieux
1.carree
2.rectangle
3.triangle
4.losange
5.trapeze
6.cercle

donner le numero de la forme :
???
printf("1.carree\n");
printf("2.rectangle\n");
printf("3.triangle\n");
printf("4.losange\n");
printf("5.trapeze\n");
printf("6.cercle\n\n");


printf("donner le numero de la forme : ");

tu peux aussi utiliser int main et à la fin mettre un return 0;
int main(void)
{
    /*ton programme */
    return 0;
}

voir aussi quand tu saisies les données

1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
21 oct. 2007 à 14:19
voilà ce que ça donne après les modifications
#include <stdlib.h>
#include <stdio.h>

int main (void)
{
  int forme, a, b, c, r, t, l, p, e;

  printf ("1.carree\n");
  printf ("2.rectangle\n");
  printf ("3.triangle\n");
  printf ("4.losange\n");
  printf ("5.trapeze\n");
  printf ("6.cercle\n\n");


  printf ("donner le numero de la forme : ");
  scanf ("%d", &forme);
  switch (forme){
    case 1:
      printf ("entrez la longueur : ");
      scanf ("%d", &a);
      c = a * a;
      printf ("superficie carre %d\n", c);
      break;
    case 2:
      printf ("entrez la longueur : ");
      scanf ("%d", &a);
      printf ("entrez la largeur : ");
      scanf ("%d", &b);
      r = a * b;
      printf ("superficie rectangle est de %d\n", r);
      break;
    case 3:
      printf ("entrez la base : ");
      scanf ("%d", &a);
      printf ("entrez la hauteur : ");
      scanf ("%d", &b);
      t = (a * b) / 2;
      printf ("superficie triangle est de %d\n", t);
      break;
    case 4:
      printf ("entrez la petite diagonale : ");
      scanf ("%d", &a);
      printf ("entrez la grande diagonale : ");
      scanf ("%d", &b);
      l = (a * b) / 2;
      printf ("superficie losange est de %d\n", l);
      break;
    case 5:
      printf ("entrez grand coter : ");
      scanf ("%d", &a);
      printf ("entrez petit coter : ");
      scanf ("%d", &b);
      p = ((a + b) * b) / 2;
      printf ("superficie trapeze est de %d\n", p);
      break;
    case 6:
      printf ("entrez rayon : ");
      scanf ("%d", &a);
      e = 3, 14 * a;
      printf ("superficie cercle est de %d\n", e);
      break;
    default:
      printf ("\nNumero forme non valide\n");
    }
  return 0;
}
0