elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda con un while
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda con un while  (Leído 1,414 veces)
BJM

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Duda con un while
« 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?

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4. #include<string.h>
  5.  
  6. void ingresar();
  7. void calcular();
  8.  
  9. int valor=0,tiempo=0,tipo=0,metros=0;
  10. float costo=0;
  11. char nombre[10], apellido[10];
  12.  
  13. int main(){
  14.  
  15.  ingresar();
  16.  calcular();
  17.  
  18.  
  19.                     }
  20. void ingresar(){
  21.  
  22.    printf(" Empresa Maya");
  23.    printf(" \nIngrese nombre:");
  24.    scanf("%s",&nombre);
  25.    printf(" \n Ingrese Apellido:");
  26.    scanf("%s",&apellido);
  27.    printf(" \n Ingrese tiempo de cliente:");
  28.    scanf("%d",&tiempo);
  29.    printf(" \n Seleccione el tipo de maya:");
  30.  
  31.    printf(" \n 1..Maya Plana");
  32.    printf(" \n 2..Maya en Rollo");
  33.    printf(" \n opc: ");
  34.    scanf("%d",&tipo);
  35.    while(tipo!=1 || tipo!=2){
  36.     printf(" \n 1..Maya Plana");
  37.    printf(" \n 2..Maya en Rollo");
  38.    printf(" \n opc: ");
  39.    scanf("%d",&tipo);                          
  40.    }
  41.    printf(" \n Cantidad de metros:");
  42.    scanf("%d",&metros);
  43.  
  44.    }
  45.  
  46. void calcular(){
  47.     if(tiempo<6 && tipo==1){
  48.                 costo=(400*(8/100))*metros;
  49.                 }
  50.                 if(tiempo<6 && tipo==2){
  51.                 costo=(250*(8/100))*metros;
  52.                 }
  53.                  printf(" \n costo: %d",costo);
  54.                  }
  55.  


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duda con un while
« Respuesta #1 en: 1 Junio 2015, 18:26 pm »

Código
  1. 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"



entonces debería ser
Código
  1. while(tipo!=1 && tipo!=2)

porque si tipo es diferente de uno y tipo es diferente de 2, repite


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
BJM

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Re: Duda con un while
« Respuesta #2 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.

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4.  
  5. void ingresar();
  6. void calcular();
  7. void imprimir();
  8.  
  9. static int plana=400, rollo=250;
  10. int tiempo=0,tipo=0,metros=0;
  11.  
  12. char nombre[10], apellido[10];
  13. int des=0;
  14. int main(){
  15.  
  16.  ingresar();
  17.  calcular();
  18.  imprimir();
  19.  printf("\n\n");
  20.  system("pause");
  21.                     }
  22. void ingresar(){
  23.  
  24.    printf(" \t\t\t***EMPRESA MAYA***");
  25.    printf(" \n\nIngrese Nombre:");
  26.    scanf("%s",&nombre);
  27.    printf(" \n Ingrese Apellido:");
  28.    scanf("%s",&apellido);
  29.    printf(" \n Ingrese tiempo de cliente:");
  30.    scanf("%d",&tiempo);
  31.    printf(" \n Seleccione el tipo de maya:");
  32.  
  33.  
  34.    do{
  35.     printf(" \n 1..Maya Plana");
  36.    printf(" \n 2..Maya en Rollo");
  37.    printf(" \n opc: ");
  38.    scanf("%d",&tipo);                          
  39.    }while((tipo!=1) && (tipo!=2));
  40.  
  41.    printf(" \n Cantidad de metros:");
  42.    scanf("%d",&metros);
  43.  
  44.    }
  45.  
  46. void calcular(){
  47.  
  48.    int costo=0;
  49.  
  50.     if(tiempo==5 && tipo==1){
  51.       costo=plana*metros;
  52.       des=costo*0.08;
  53.             }
  54.         if(tiempo>=6 && tipo==1){
  55.           costo=plana*metros;
  56.           des=costo*0.06;
  57.                 }
  58.                 if(tiempo==5 && tipo==2){
  59.                    costo=rollo*metros;
  60.                    des=costo*0.08;
  61.                    }
  62.                     if(tiempo>=6 && tipo==2){
  63.                       costo=rollo*metros;
  64.                       des=costo*0.06;
  65.                      }      
  66.  
  67.  
  68.                  }
  69.  
  70. void imprimir(){
  71.  
  72.     printf(" \n\nDescuento cliente");
  73.     printf(" \n\nNombre: %s\tApellido: %s", nombre,apellido);
  74.     printf(" \n El descuento es: %d BsF",des);
  75.     }
  76.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pequeña duda con un comando batch (NUEVA DUDA RELACIONADA)
Scripting
revenge1252 9 9,773 Último mensaje 13 Febrero 2008, 21:41 pm
por revenge1252
Duda duda y duda de Metasploit
Bugs y Exploits
huber_nomas 4 5,803 Último mensaje 17 Febrero 2012, 14:00 pm
por MauroMasciar
Duda facil, [VIDEO QUE EXPLICA MI DUDA]
Diseño Gráfico
Ngeooz 6 8,890 Último mensaje 2 Diciembre 2013, 19:33 pm
por Ngeooz
[DUDA] Cambiar letra de unidad a archivo con un Batch [DUDA] « 1 2 »
Windows
MrMaticool 10 11,367 Último mensaje 12 Febrero 2014, 17:55 pm
por MrMaticool
[DUDA][LICENCIA][GPL]tengo una duda sobre las caracteristicas de la licencia GPL
Dudas Generales
Noxware 0 1,880 Último mensaje 2 Mayo 2014, 00:34 am
por Noxware
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines