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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa que busca un número en una cifra
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa que busca un número en una cifra  (Leído 1,727 veces)
rosky

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Programa que busca un número en una cifra
« en: 27 Enero 2017, 20:40 pm »

Hola, estoy intentando realizar un programa que inserte un numero de 1 a 9 y busque si esta en otra cifra pedida, ejemplo:
introduzco el 5, introduzco el 167457, y me dice que el 5 esta en la cifra.
Pero no funciona y no le encuentro el fallo, por un lado tengo un problema a la hora de contar las cifras y finalmente no funciona.
¿Me podríais echar una mano? Gracias de antemano.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define TAM 20
  5.  
  6. int main()
  7. {
  8.  
  9.    printf("*** CIFRAS ***\n\n");
  10.  
  11.    int i,num,cifra,resto[TAM];
  12.    int semaforo=0;
  13.    int potencia=10;
  14.    int longitud=1;
  15.    int copia_cifra;
  16.  
  17.    //introduzco un numero de 1 a 9
  18.    printf("Intrduce un entero de 1 a 9:\n");
  19.    scanf(" %d",&num);
  20.  
  21.    while(num>9||num<1)
  22.    {
  23.      printf("ERROR. Intrduce un entero de 1 a 9");
  24.    scanf(" %d",&num);
  25.    }
  26.  
  27.    //introduzco una cifra mayor que 0
  28.    printf("Intrduce una cifra mayor que 0:\n");
  29.    scanf(" %d",&cifra);
  30.  
  31.    while(cifra<1)
  32.    {
  33.        printf("ERROR. Intrduce una cifra mayor que 0:\n");
  34.        scanf(" %d",&cifra);
  35.    }
  36.  
  37.    copia_cifra=cifra;
  38.    //Aqui obtengo el numero de cifras que tiene mi numero
  39.    while(copia_cifra/10>0)
  40.    {
  41.        copia_cifra=copia_cifra/10;
  42.        longitud++;
  43.    }
  44.  
  45.    //Divido la cifra por decena centenas etc y averiguo si coincide con el numero pedido
  46.    for(i=0;i<longitud&&semaforo!=1;i++)
  47.        {
  48.        resto[i]=cifra%(potencia^(i+1));
  49.        return 0;
  50.        if(resto[i]==num)semaforo=1;
  51.        else if(resto[i]/(potencia^i)==num)semaforo=1;
  52.  
  53.        }
  54.  
  55.    if(semaforo==1)printf("\nEl numero aparece en la cifra");
  56.    else if(semaforo==0)printf("\nEl numero NO aparece en la cifra");
  57.  
  58.    return 0;
  59. }


En línea

AnthonyS

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Programa que busca un número en una cifra
« Respuesta #1 en: 28 Enero 2017, 18:15 pm »

Saludos.

Me pidieron un ejercicio igual que ese en clase hace 1 año,te mostraré el código para ver si te ayuda a aclararte.

Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main()
  6. {
  7.    int numero=0,propuesto=0;
  8.    printf("Introduzca un numero mayor que cero,y luego uno desde 0 hasta 9 \n el primero sera usado de referencia y el segundo el que se \n busca.\n");
  9.    while(numero<1 || propuesto<1)  scanf("%d %d",&numero,&propuesto);
  10.    while(numero>0)
  11.    {
  12.        if(numero%10 == propuesto)
  13.        {
  14.            printf("El numero pertence a la cifra introducida \n");
  15.            numero = 0;
  16.            propuesto = 0;
  17.        }
  18.        else
  19.            numero = numero/10;
  20.    }
  21.    if(propuesto)  printf("La cifra propuesta no existe en el numero\n");
  22.    return 0;
  23. }
  24.  
  25.  
  26.  

Un saludo.


En línea

rosky

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Programa que busca un número en una cifra
« Respuesta #2 en: 30 Enero 2017, 23:47 pm »

Perfecto,muchas gracias  ;-)
En línea

NavyPenguin

Desconectado Desconectado

Mensajes: 1


"Volver al origen no es retroceder"


Ver Perfil
Re: Programa que busca un número en una cifra
« Respuesta #3 en: 1 Febrero 2017, 20:22 pm »

Veo que ya te dieron una respuesta, pero con respecto a tu código, te sugiero que utilices un arreglo y luego pedir la cifra con char *fgets(char *cadena, int n, FILE *stream);
, ya que fgets lee una cadena de caracteres siendo "n" el numero maximo de cifras a leer y STREAM el archivo de donde lee, en este caso sería "stdin" que es el archivo de entrada de teclado. Luego vas revisando caracter por caracter gracias al arreglo y revisas si es = 5.

Espero que te sirva.
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