Título: Duda con un while
Publicado por: BJM en 1 Junio 2015, 18:20 pm
Necesito validar que la variable tipo solo tome como valor el 1 o 2, para esto utilize un do-while pero el ciclo se repetia una y otra vez, ahora utilizo while y pasa lo mismo, donde podria estar el error? #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> void ingresar(); void calcular(); int valor=0,tiempo=0,tipo=0,metros=0; float costo=0; char nombre[10], apellido[10]; int main(){ ingresar(); calcular(); } void ingresar(){ printf(" \n Ingrese Apellido:"); printf(" \n Ingrese tiempo de cliente:"); printf(" \n Seleccione el tipo de maya:"); printf(" \n 2..Maya en Rollo"); while(tipo!=1 || tipo!=2){ printf(" \n 2..Maya en Rollo"); } printf(" \n Cantidad de metros:"); } void calcular(){ if(tiempo<6 && tipo==1){ costo=(400*(8/100))*metros; } if(tiempo<6 && tipo==2){ costo=(250*(8/100))*metros; } printf(" \n costo: %d",costo ); }
Título: Re: Duda con un while
Publicado por: engel lex en 1 Junio 2015, 18:26 pm
while(tipo!=1 || tipo!=2)
si tipo es diferente de 1 o tipo es diferente de 2 va a entrar al ciclo... es decir... si tipo es 1 tipo no es diferente de 1 pero tipo es diferente de 2... entra... recuerda la tabla de verdad de "or" (http://html.rincondelvago.com/000264780.jpg) entonces debería ser while(tipo!=1 && tipo!=2)
porque si tipo es diferente de uno y tipo es diferente de 2, repite
Título: Re: Duda con un while
Publicado por: BJM en 1 Junio 2015, 23:33 pm
Gracias, ahora funciona bien exepto que durante la ejecucion si pasa mucho tiempo sin introducir datos el compilador se reinicia, un doble gracias si me ayudas. #include<stdio.h> #include<stdlib.h> #include<conio.h> void ingresar(); void calcular(); void imprimir(); static int plana=400, rollo=250; int tiempo=0,tipo=0,metros=0; char nombre[10], apellido[10]; int des=0; int main(){ ingresar(); calcular(); imprimir(); } void ingresar(){ printf(" \t\t\t***EMPRESA MAYA***"); printf(" \n\nIngrese Nombre:"); printf(" \n Ingrese Apellido:"); printf(" \n Ingrese tiempo de cliente:"); printf(" \n Seleccione el tipo de maya:"); do{ printf(" \n 2..Maya en Rollo"); }while((tipo!=1) && (tipo!=2)); printf(" \n Cantidad de metros:"); } void calcular(){ int costo=0; if(tiempo==5 && tipo==1){ costo=plana*metros; des=costo*0.08; } if(tiempo>=6 && tipo==1){ costo=plana*metros; des=costo*0.06; } if(tiempo==5 && tipo==2){ costo=rollo*metros; des=costo*0.08; } if(tiempo>=6 && tipo==2){ costo=rollo*metros; des=costo*0.06; } } void imprimir(){ printf(" \n\nDescuento cliente"); printf(" \n\nNombre: %s\tApellido: %s", nombre ,apellido ); printf(" \n El descuento es: %d BsF",des ); }
|