SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: utz en Viernes 13 de Junio de 2008, 23:10
-
Hola amigos, quiro hacer algo como esto...
do{
printf("Ingrese pais:");
printf("\n1:Panama\n2:Alemania");
scanf("%i",&a);
}while(a<1 || a>2);
switch(a)
{
case 1: printf("10000");
break;
case 2: printf("20000");
break;
}
...pero en ves de almacenar un numero en la variable me gustaria almacenar una palabra, y despues mostrar un algo con un printf segun la opcion, hasta ahora solo lo se hacer de este modo, he tratado de hacerlo almacenando la respuesta en una variable de tipo char, pero eso me impide hacer uso del switch, y hacerlo con un if me sale poco rasonable...
espero me puedan ayudar
saludos
-
lo puedes hacer de la siguiente manera
incluir libreria string.h
char pal[30];
printf("Ingrese Pais: Panama o Alemania ");
scanf("%s",&pal);
if(!strcmp(pal,"Panama"))
printf("Opcion 1");
if(!strcmp(pal,"Alemania")
printf("Opcion 2");
Bueno algo asi... :smartass:
espero que sirva de algo :kicking:
-
buena solucion.
tienes varias alternativas. puedes guardar las palabras enun vector tipo *char , y al ingresarun numero, semueva el indice del vector y hacer un printf de la palabra a la que apunta.
pero, sin ir mas lejos, usar IF no es deficiente para nada, desde mi putno de vista , pues todo se traduce a ensamblador luego. el IF es una estructura de direccion de flujo mas primitiva que el IF, eso quiere decir que la momento de traducir tu codigo C a ensamblador, tu switch va a ser traducido a varios IF anidados en ensamblador.
USA IF y punto
-
...pero en ves de almacenar un numero en la variable me gustaria almacenar una palabra, y despues mostrar un algo con un printf segun la opcion, hasta ahora solo lo se hacer de este modo, he tratado de hacerlo almacenando la respuesta en una variable de tipo char, pero eso me impide hacer uso del switch, y hacerlo con un if me sale poco rasonable...
pues lamentablemente el switch/case solo admite valores escalares o sea, numeros enteros, o letras individuales, si necesitas comparar con numeros flotantes, o cademas, debes usar if a fuerza, y en el caso de cadenas, como bien apunta el compañero AnimaSubtilis en su mensaje anterior, debes usar ademas strcmp, o, si usas C++, la clase string.
Saludos :hola: