Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Xiray en 22 Julio 2016, 05:54 am



Título: [Ayuda]Validar tarjeta de credito
Publicado por: Xiray en 22 Julio 2016, 05:54 am
alguien me podria ayudar hice este codigo para validar una tarjeta de credito para un tarea de la uni pero aunque haya echo tdo segun lo indicado por el profe el programa me marca las tarjetas validas invalidas, alguien me podria ayudar por que esta tan loquito esto

informacion enviada por mi maestro https://www.dropbox.com/sh/ct9vgwk32glbu6w/AADX75AjMso0-26HZlE8n9nRa/Projectos/Sistema%20de%20validaci%C3%B3n%20de%20tarjetas%20de%20cr%C3%A9dito.docx?dl=0 (https://www.dropbox.com/sh/ct9vgwk32glbu6w/AADX75AjMso0-26HZlE8n9nRa/Projectos/Sistema%20de%20validaci%C3%B3n%20de%20tarjetas%20de%20cr%C3%A9dito.docx?dl=0)
el codigo es en c
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int impar2(int odd,int r)
  4. {
  5.    if(r=odd/10){
  6.            r=r*2;
  7.            }if(r>9){
  8.                r=r-9;
  9.            }
  10.    return(r);
  11. }
  12. int sumoddever(int r,int ever,int val,int s)
  13. {   if(s=ever/10){
  14.            s=s+s;
  15.            }
  16.    val=r+s;
  17.    return (val);
  18. }
  19. int validar(int val)
  20. {
  21.     if(val%10==0)
  22.        return 1;
  23.     return 0;
  24. }
  25. int main()
  26. { int ever,odd,r,s,val;
  27.  
  28.    printf("introduzca los valores de las posiciones impar de su tarjeta!\n");
  29.    scanf("%d",&odd);
  30.    printf("introduzca los valores de las posiciones par de su tarjeta!\n");
  31.    scanf("%d",&ever);
  32.  
  33.  
  34.  
  35.    if(validar(val)==1){
  36.        printf("ES VALIDA");
  37.    }
  38.    if(validar(val)==0){
  39.        printf("NO ES VALIDA");
  40.    }
  41.  
  42. return 0;
  43. }


Título: Re: [Ayuda]Validar tarjeta de credito
Publicado por: palacio29 en 22 Julio 2016, 07:21 am
Hola

Soy novato con el C asi que te voy a responder desde mis limitados conocimientos (tomalo con pinzas).(Si es que esto es C lo que pusiste)

En el main que vos tenes pedis los valores pares e impares.
Luego estas llamando a la funcion validar. Supongo que lo queres hacer en el programa es que te ingresen pares y si son todos pares Ok y si ingresan luego impares y son todos impares, Ok , tarjeta valida!.

Ahora despues vos tenes 2 funciones mas "sumoddever" y  "impar2".. Para mi el problema es que  vos no estas llamando a estas funciones en el main. Necesitas llamarlas en el main ya que lo que vos ingresas solo queda guardado en las variables que declaraste en el main y no en las que estas poniendo en las otras funciones.

Aparte fijate que en la funcion Validar vos le estas pasando el valor de "Val" que es una variable que declaraste en el main pero que no le pusiste ningun valor, puede ser 0 o basura lo mas probable.

Para mi lo que tenes que validar son los valores "ever" y "odd"..

Pero te repito soy novato, nose casi nada de C, mis conocimientos son muy basicos y quizaste estoy mandando fruta...pero si te sirvio lo que te dije , indicame un poco mas en detalle el programa que queres hacer o que queres que haga  y te lo armo.


Título: Re: [Ayuda]Validar tarjeta de credito
Publicado por: Xiray en 23 Julio 2016, 07:51 am
Hola

Soy novato con el C asi que te voy a responder desde mis limitados conocimientos (tomalo con pinzas).(Si es que esto es C lo que pusiste)

En el main que vos tenes pedis los valores pares e impares.
Luego estas llamando a la funcion validar. Supongo que lo queres hacer en el programa es que te ingresen pares y si son todos pares Ok y si ingresan luego impares y son todos impares, Ok , tarjeta valida!.

Ahora despues vos tenes 2 funciones mas "sumoddever" y  "impar2".. Para mi el problema es que  vos no estas llamando a estas funciones en el main. Necesitas llamarlas en el main ya que lo que vos ingresas solo queda guardado en las variables que declaraste en el main y no en las que estas poniendo en las otras funciones.

Aparte fijate que en la funcion Validar vos le estas pasando el valor de "Val" que es una variable que declaraste en el main pero que no le pusiste ningun valor, puede ser 0 o basura lo mas probable.

Para mi lo que tenes que validar son los valores "ever" y "odd"..

Pero te repito soy novato, nose casi nada de C, mis conocimientos son muy basicos y quizaste estoy mandando fruta...pero si te sirvio lo que te dije , indicame un poco mas en detalle el programa que queres hacer o que queres que haga  y te lo armo.

esto fue lo que el profesor nos envio con la informacion de como teniamos que hacerlo por otro lado los pares que el usuario tiene que entrar son los numeros en las posiciones par de la tarjeta y de igual modo los de las posicion impar
https://www.dropbox.com/sh/ct9vgwk32glbu6w/AADX75AjMso0-26HZlE8n9nRa/Projectos/Sistema%20de%20validaci%C3%B3n%20de%20tarjetas%20de%20cr%C3%A9dito.docx?dl=0