Bueno amigo ya lo repase pero como no lo has puesto el código entero te lo dire los fallos que vi.
1º En a algunos switch te olvidas poner los casos por defecto (default), y siempre hay que ponerlos ¿ok?
2º lo de que no te funcione es por el case 1: que debe poner los '' entre el 1...
case '1':
cuando vayas tomar una sola letra puedes usar getch o getchar. Con getch al elegir 1 no hace falta pulsar el enter así que puede que te guste mas, el problema es cuando vas ingresar mas de una letra o numero como 233 que getch solo toma la primera causando error, pero para elegir es perfecta ;)
Código C:
Ver original#include<stdio.h>
int calcular ();
void suma ( float a, float b );
int main() {
int opcion = 0;
printf ( "Ingresar opcion:\n1 para calculo de 2 numeros con un operando\n2 para factorial\n3 para exponencial\n4 para calculos trigonometricos\n5 para conversion a hexadecimal/binario \n\n" );
opcion = getche();
switch ( opcion ) {
case '1':
calcular();
break;
default:
break; // Te falto el break aqui Debes ponerlo tambien en default
}
}
int calcular(){
float a, b;
char operador, enter;
printf ( "\nIngresar la operacion\n" ); operador = getche();
printf ( "\nIngresar primer numero: " ); //scanf("%f %c", &a, &enter);
printf ( "\nIngresar segundo numero: " );
switch ( operador ) {
case '+':
suma ( a, b );
break;
default:
printf ( "\nSiempre debe llevar default\n" ); break; // Siempre poner break;
}
}
void suma ( float a, float b ){
printf("%f + %f = %f", a
, b
, (a
+b
) ); }
Si ves algún problema mas dilo que aquí seguimos intentando solucionar XD
suerte!