Programa usuario y contraseña

Iniciado por Ander123, 26 Agosto 2012, 10:27 AM

0 Miembros y 1 Visitante están viendo este tema.

Ander123

Hola, tengo este programa, y no encuentro el fallo, no se si se pueden poner dos variables diferentes en un "do" con diferentes if.. a ver si me he dejado algo.. esque no lo veo.

#include<stdio.h>

int main(void)
{
   int codigo, contraseña;
   int valida1=1024, valida2=4567;



   do
   {
       printf("Ingrese su codigo de usuario");
       scanf("%d\n", &codigo);
       printf("Ingrese su contraseña");
       scanf("%d\n", &contraseña);
       {
            if (valida1=!1024)
            printf(" Su codigo no es valido");


       }
       {
           if (valida2=!4567)
       printf("Su contraseña no es valida");

       }


   }
   while
   {
       (valida1=!1024)
       printf("Su codigo es valido");
   }
   {
       (valida2=!4567)
       printf("Su contraseña es valida");
   }
}

Stakewinner00

#1
que pretendes hacer?

intente arreglarlo nose si era esto lo k pretenias, de todos modos
#include<stdio.h>

int main()
{
    int codigo;
int contrasena;
    int valida1=1024;
int valida2=4567;



    do
    {
        printf("Ingrese su codigo de usuario");
        scanf("%d\n", &codigo);
        printf("Ingrese su contraseña");
        scanf("%d\n", &contrasena);
        {
             if (valida1=!1024)
             printf(" Su codigo no es valido");


        }
        {
            if (valida2=!4567)
        printf("Su contraseña no es valida");

        }


    }
    while(valida1=!1024);
        printf("Su codigo es valido");
        while(valida2=!4567);
        printf("Su contraseña es valida");
    }

-- KiLiaN --

#2
#include<stdio.h>

int main()
{
    int codigo, contrasena, valida1 = 1024, valida2=4567;

     do
    {
        printf("Ingrese su codigo de usuario");
        scanf("%d\n", &codigo);
        printf("Ingrese su contraseña");
        scanf("%d\n", &contrasena);
       
             if (valida1 != 1024)
               printf(" Su codigo no es valido");
                 
             if (valida2 != 4567)
               printf("Su contraseña no es valida");


    }
    while(valida1 != 1024 && valida2 != 4567);
       
     return 0;   
    }
Entren al chat de elhacker.net
    
   

@kln13

fabianjsm

En tu IF estas comparando con valida1, no deberías comparar con contrasena?
El operador de comparación es !=, tu escribes =!.
No necesitas en "\n" en scanf, con "%d" es suficiente, lo que haces es esperar un RETURN extra.
Modificando un poco tu codigo:

Código (cpp) [Seleccionar]
    do {
        printf("Ingrese su contraseña: ");
        scanf("%d", &contrasena);
if (contrasena == valida1)
break; // sale del while
if (contrasena == valida2)
break; // sale del while
printf("Su contraseña no es valida\n");
} while(1); // vuelve al inicio del bucle
    printf("Su codigo es valido!\n");


Fire544

Cita de: fabianjsm en 26 Agosto 2012, 14:28 PM
En tu IF estas comparando con valida1, no deberías comparar con contrasena?
El operador de comparación es !=, tu escribes =!.
No necesitas en "\n" en scanf, con "%d" es suficiente, lo que haces es esperar un RETURN extra.
Modificando un poco tu codigo:

Código (cpp) [Seleccionar]
    do {
        printf("Ingrese su contraseña: ");
        scanf("%d", &contrasena);
if (contrasena == valida1)
break; // sale del while
if (contrasena == valida2)
break; // sale del while
printf("Su contraseña no es valida\n");
} while(1); // vuelve al inicio del bucle
    printf("Su codigo es valido!\n");



Si tienes razon, el codigo estaba erratico porque se estaba comparando valida1 con valores constantes y nunca se cumplia la sentencia, la solucion era comparar valida1 con alguna otra variable en este caso con codigo o contraseña, que si dependian del usuario utilizador del codigo o software.
"Si enseñas a pezcar a un niño lo ayudas para toda la vida, si pezcas para alimentarlo lo ayudas por un momento".