[ Foro de C ]

Tengo error con este programa y la verdad no se en que estoy mal si me pueden ayudar

15-May-2016 17:46
Invitado (Anonimo)
1 Respuestas


 
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
float cuadrado(float x);
float posneg(float j);
float pot(float u);
int salir(int o);
int main()
{
	int opc;
	float a,b,c,num,n,n1,p,d,f;
	char res;
	do{
	printf("Menu");
	printf("\n1 Cuadrado de N (N^2)");
	printf("\n2 Positivo o Negativo");
	printf("\n3 N a la Potencia E (N^e)");
	printf("\n4 Salir");
	printf("\n Selecciona una Opcion :");
	scanf("%d",&opc);
	switch(opc)
 
	case 1:
      printf("numero a calcular: ");
      scanf("%f",&num);
      cuadrado(num);
      printf("el cuadrado de tu numero es: %f\n",a,num);
      break;
 
    case 2:
     printf("Dame un numero: ");
     scanf("%f",&n);
     posneg(n);
     break;
 
    case 3:
    	printf("Dame un numero: ");
    	scanf("%f",&n1);
    	printf("Dame la potencia: ");
    	scanf("%f",&p);
    	pot(n1);
    	printf("el cuadrado de tus numeros es: %f\n",n1,p);
    	break;
 
    case 4:
    	salir(f);
    	break;
    	res=getche();
        }
		while(res=='4'||res=='4');
	    system("cls");  	
}
 
float cuadrado(float x)
{
   float num,op;
   op=num*num;
   printf("%f\n",op);
   return op;
}
float posneg(float j)
{
   float n;
   if (n>0)
   printf("El %f es un numero positivo",n);
   else
   printf("El %f es un numero negativo",n);
}
float pot(float u)
{
	float c,p,oc,n;
    for(oc=p;oc<n;p++)
    return oc;
}
int salir(int o)
{
	exit;
}
 


Me da los siguientes errores:
case label '2' not within a switch statement
case label '3' not within a switch statement
case label '4' not within a switch statement
No veo que pueda tener mal y Gracias por la ayuda


17-May-2016 10:00
Invitado (Caranim)

Tal como te indica el error, los "case" deben ir dentro de un bloque "switch" y, si bien si tienes un "switch(opc)" lo que te falta es encerrar entre llaves todas las instrucciones que pertenezcan a ese bloque.

Un saludo.

Caranim.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)