Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Ander123 en 26 Agosto 2012, 10:27 AM

Título: Programa usuario y contraseña
Publicado por: Ander123 en 26 Agosto 2012, 10:27 AM
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");
   }
}
Título: Re: Programa usuario y contraseña
Publicado por: Stakewinner00 en 26 Agosto 2012, 12:55 PM
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");
    }
Título: Re: Programa usuario y contraseña
Publicado por: -- KiLiaN -- en 26 Agosto 2012, 14:22 PM
#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;   
    }
Título: Re: Programa usuario y contraseña
Publicado por: 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");

Título: Re: Programa usuario y contraseña
Publicado por: Fire544 en 26 Agosto 2012, 18:26 PM
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.