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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  While de numeros hasta introducir uno más pequeño
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: While de numeros hasta introducir uno más pequeño  (Leído 2,494 veces)
sora_ori

Desconectado Desconectado

Mensajes: 269



Ver Perfil
While de numeros hasta introducir uno más pequeño
« en: 18 Abril 2013, 21:22 pm »

Buenas,

No consigo hacer este programa en C:

  • Escribir numeros por teclado
  • Acabará cuando el ultimo numero sea más pequeño que el anterior introducido
  • Nos dira la largada de escala, es decir, todos los numeros introducidos excepto el ultimo.

Ejemplo: 3, 5, 6, 6, 8, 9, 11, 4

El programa termina cuando introducimos el número 4, y nos responderá 7, que es la cantidad de números que hemos entrado antes del 4.




Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main(){
  6.    int num1, num2;
  7.    int i=0;
  8.  
  9.  
  10.    while (num2 <= num1){
  11.          printf("Escribe un numero: ");
  12.          scanf("%d", &num1);
  13.          num2 = num1;
  14.          if (num2 <= num1){
  15.                   i++;
  16.          }
  17.    }
  18.  
  19.  
  20.        printf("Se han contado %d veces", i-1);
  21.  
  22.  
  23.  
  24.    printf("\n\n");
  25.  system("pause");
  26.  return 0;
  27. }
  28.  


En línea

pacoperico

Desconectado Desconectado

Mensajes: 100


Ver Perfil
Re: While de numeros hasta introducir uno más pequeño
« Respuesta #1 en: 18 Abril 2013, 21:52 pm »

Estas usando las variables num1 y num2 antes de darles cualquier valor. Por ejemplo puedes hacer un do..while en lugar del while que tienes.


« Última modificación: 18 Abril 2013, 21:54 pm por pacoperico » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: While de numeros hasta introducir uno más pequeño
« Respuesta #2 en: 18 Abril 2013, 21:58 pm »

Sin entrar en memoria dinámica para abreviar, esto podría servirte, creo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. int main(){
  6.    int num1 ,num2;
  7.    int i=0;
  8.    printf("Escribe un numero: ");
  9.    scanf("%d", &num1);
  10.    for (i=1;;i++){
  11.          printf("Escribe un numero: ");
  12.          scanf("%d", &num2);
  13.          if (num2<num1)
  14.            break;
  15.          else
  16.            num1=num2;
  17.    }
  18.    printf("Se han contado %d veces", i);
  19.    printf("\n\n");
  20.    system("pause");
  21.    return 0;
  22. }
  23.  
Saluditos!. ....

P.D: Perdón, era con un while:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. int main(){
  6.    int num1 ,num2;
  7.    int i=0;
  8.    printf("Escribe un numero: ");
  9.    scanf("%d", &num1);
  10.    while (1){
  11.          i++;
  12.          printf("Escribe un numero: ");
  13.          scanf("%d", &num2);
  14.          if (num2<num1)
  15.            break;
  16.          else
  17.            num1=num2;
  18.    }
  19.    printf("Se han contado %d veces", i);
  20.    printf("\n\n");
  21.    system("pause");
  22.    return 0;
  23. }
  24.  
  25.  

Saluditos otra vez ....
« Última modificación: 18 Abril 2013, 22:03 pm por leosansan » En línea

sora_ori

Desconectado Desconectado

Mensajes: 269



Ver Perfil
Re: While de numeros hasta introducir uno más pequeño
« Respuesta #3 en: 19 Noviembre 2013, 11:21 am »

Perdón por revivir el tema... Estoy haciendo este ejercicio en Python y me da error en el bucle.

SOLUCIONADO!

Código
  1. #!/usr/bin/env python
  2.  
  3. num1 = input('Escribe un numero: ')
  4.  
  5. i=0
  6.  
  7. while (True):
  8. i=i+1
  9. num2 = input('Escribe un numero: ')
  10.  
  11. if (num2<num1):
  12. break
  13. else:
  14. num1=num2
  15.  
  16. print 'Se han contado',i,'veces'
  17.  
« Última modificación: 19 Noviembre 2013, 13:53 pm por sora_ori » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: While de numeros hasta introducir uno más pequeño
« Respuesta #4 en: 19 Noviembre 2013, 14:58 pm »

Supongo que estas usando Python 3.X, más que nada por el uso que haces del input.

Pues bien, Lo único que aparentemente te falla es la ausencia de los paréntesis en la instrucción print, que debería ser:

Código
  1. print ('Se han contado',i,'veces')

Con esa simple corrección el código se ejecuta sin problemas.

Saluditos!!¡...
« Última modificación: 19 Noviembre 2013, 16:59 pm por leosansan » En línea

sora_ori

Desconectado Desconectado

Mensajes: 269



Ver Perfil
Re: While de numeros hasta introducir uno más pequeño
« Respuesta #5 en: 19 Noviembre 2013, 20:22 pm »

Ya lo había solucionado, gracias por la ayuda de todos modos :)

Lo había editado el msg con el código correcto.


Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines