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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con ejercicio de C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con ejercicio de C  (Leído 4,586 veces)
K1LTR1X

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Ayuda con ejercicio de C
« en: 5 Junio 2013, 21:15 pm »

Buenas.
Estoy iniciandome en la programación, he comenzado por el lenguaje C.
Me descargue un "manual" de C, en el hay varios ejercicios para practicar.
Mi duda esta en este ejercicio:
• Crea un programa que pida al usuario su código de usuario (un número entero) y su
contraseña numérica (otro número entero), y no le permita seguir hasta que introduzca
como código 1024 y como contraseña 4567.

Yo hago esto:
Código:
#include <stdio.h>
main()
{
int nickV = 1024;
int nick;
int passV = 4567;
int pass;

do
 {
 printf("\n\n\n\n\t\t\t\tNICK:");
 scanf("%d", nick);
 printf("\n\t\t\t\tPASS:");
 scanf("%d", pass);
 if ((pass != passV) && (nick != nickV)) printf("No valida");
 }
while ((nick != nickV) && (pass != passV));
printf("Aceptada");
}

El programa se compila bien, se ejecuta, y cuando inserto el nick y la pass y doy a enter me sale el típico error de Windows "XXXXXX.exe dejo de funcionar".

¿Alguien me puede ayudar? Gracias de antemano.

Saludos


En línea

CCross

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Ayuda con ejercicio de C
« Respuesta #1 en: 5 Junio 2013, 21:29 pm »

El problema radica en que scanf necesita la dirección de la variable a leer por lo cual
debes cambiar esto:

Código
  1. scanf("%d", pass); ---------> scanf("%d", &pass);

En ambos casos el codigo corregido

Código
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int nickV = 1024;
  5. int nick;
  6. int passV = 4567;
  7. int pass;
  8.  
  9. do
  10. {
  11. printf("\n\n\n\n\t\t\t\tNICK:");
  12. scanf("%d", &nick);
  13. printf("\n\t\t\t\tPASS:");
  14. scanf("%d", &pass);
  15. if ((pass != passV) && (nick != nickV)) printf("No valida");
  16. }
  17. while ((nick != nickV) && (pass != passV));
  18. printf("Aceptada");
  19.  
  20. return 0;
  21. }
  22.  

PD: Ademas debes adoptar la costumbre de que main te retorne un entero para garantizar de que el programa termino exitosamente mas bien esto lo debes hacer de manera obligatoria

Saludos  ;D


« Última modificación: 5 Junio 2013, 21:44 pm por CCross » En línea

K1LTR1X

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Re: Ayuda con ejercicio de C
« Respuesta #2 en: 5 Junio 2013, 21:39 pm »

El problema radica en que scanf necesita la dirección de la variable a leer por lo cual
debes cambiar esto:

Código
  1. scanf("%d", pass); ---------> scanf("%d", &pass);

En ambos casos el codigo corregido

Código
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int nickV = 1024;
  5. int nick;
  6. int passV = 4567;
  7. int pass;
  8.  
  9. do
  10. {
  11. printf("\n\n\n\n\t\t\t\tNICK:");
  12. scanf("%d", &nick);
  13. printf("\n\t\t\t\tPASS:");
  14. scanf("%d", &pass);
  15. if ((pass != passV) && (nick != nickV)) printf("No valida");
  16. }
  17. while ((nick != nickV) && (pass != passV));
  18. printf("Aceptada");
  19.  
  20. return 0;
  21. }
  22.  

Saludos  ;D
Muchas gracias!

Ahora me ha surgido otro problema, cuando pongo el nick bien y la pass mal o al reves, me sale "No ValidaAceptada" ¿Cómo lo soluciono?

Saludos!
« Última modificación: 5 Junio 2013, 21:52 pm por K1LTR1X » En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Ayuda con ejercicio de C
« Respuesta #3 en: 5 Junio 2013, 21:50 pm »

Buenas!!

Cambia la condición de while y del if por or

Código
  1. while ((nick != nickV) || (pass != passV));

Saludos
En línea

Breakbeat como forma de vida
K1LTR1X

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Re: Ayuda con ejercicio de C
« Respuesta #4 en: 5 Junio 2013, 21:53 pm »

Buenas!!

Cambia la condición de while y del if por or

Código
  1. while ((nick != nickV) || (pass != passV));

Saludos

Era eso, muchas gracias!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Ejercicio C 100
Ejercicios
Dem0ny 2 6,040 Último mensaje 19 Diciembre 2007, 22:45 pm
por Dem0ny
Ayuda co un ejercicio de C#
.NET (C#, VB.NET, ASP)
hitori batusai 2 5,356 Último mensaje 22 Febrero 2008, 01:53 am
por hitori batusai
Ayuda con ejercicio de VB
Programación Visual Basic
guada_sp 5 3,351 Último mensaje 8 Marzo 2008, 02:54 am
por ‭‭‭‭jackl007
[Ejercicio] Aca tienen un ejercicio para practicar « 1 2 3 »
Programación Visual Basic
Dreamaker 20 15,762 Último mensaje 5 Septiembre 2010, 02:57 am
por TGa.
Ayuda ejercicio de Pascal, cuando uno no lo ve claro pide ayuda
Programación General
manu3742 1 3,242 Último mensaje 31 Marzo 2011, 15:43 pm
por d(-_-)b
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines