problemas con los case y switch

jager
13 de Abril del 2005
tengo este codigo y me marca 10 con el switch y case errores que puedo hacer
#include<conio.h>
#include<stdio.h>
#define pi 3.1416
#define A 1.721
int cir (int, float);
int trap (int, int, int);
int penta(float, int);

main()
{
int D, Ar, a, b, c, h, l;
char opcion;
clrscr();
do
{
gotoxy(3,4);
printf("Elige la opcion para adqquirir el Area de la figura que deseas\n");
gotoxy(5,8);
printf("1._ Circulo\n");
gotoxy(5,10);
printf("2._Trapecio\n");
gotoxy(5,12);
printf("3._Pentagono\n");
gotoxy(5,14);
printf("4._Salir\n");
gotoxy(5,16);
opcion=getchar();

clrscr();

switch (opcion);
{
case \'1\':
printf("Cual es el diametro del circulo: \n");
scanf("%d", &D);
cir(D, pi);
printf("El area del Circulo es %d\n", Ar);
break;

case \'2\':
printf("Cuanto mide el lado a superior \n");
scanf("%d",&a);
printf("Cuanto mide el lado b inferior \n");
scanf("%d",&b);
printf("Cuanto mide la altura \n");
scanf("%d",&h);
trap(a, c, h);
printf("El area de trapecio es %d\n", Ar);
break;

case \'3\':
printf("Cuanto mide el lado del Pentagono \n");
scanf("%d",&l);
penta(A, l);
printf("El area del pentagono es %d \n", Ar);
break;

case \'4\':
printf("Oprime enter para salir\n");
break;

default :
printf("Esta opcion no existe...\n");
break;
}

}while(opcion!=\'4\');
return (0);
}

int cir (int D, float pi)
{
Ar= pi * D * D;
return (Ar);
}

int trap (int a, int c, int h)
{
Ar=(a+c)/2 * h;
return(Ar);
}

int penta (float A, int l)
{
Ar= A * l * l;
return(Ar);
}

Caiman
13 de Abril del 2005
<< opcion=getchar();>>

aunque no es gran problema puedes cambiarla mejor por:

opcion=getch();

<<
switch (opcion);
{
case \'1\':
>>

Le debes quitar las barras a las dierecis de los cases:

case ´1´:

o tendrás que convertir opcion a tipo entero y dejar los cases normalmente:

case 1: