comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO]Fallo en C

  • 5 Respuestas
  • 1312 Vistas

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

Desconectado D4RKS0N1K

  • *
  • Underc0der
  • Mensajes: 119
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Noviembre 15, 2015, 04:45:25 pm »
Buenas!

Tengo este código ;

Código: C
  1. #include <stdio.h>
  2.  
  3.  
  4. char nombre;
  5. char apellidos;
  6. int edad;
  7. int main (void)
  8. {
  9. You are not allowed to view links. Register or Login ("Introduzca su nombre");
  10. You are not allowed to view links. Register or Login ("%s", &nombre);
  11. You are not allowed to view links. Register or Login ("Introduzca sus apellidos");
  12. You are not allowed to view links. Register or Login ("%s", &apellidos);
  13. You are not allowed to view links. Register or Login ("Por último introduzca su edad");
  14. You are not allowed to view links. Register or Login ("%n", &edad);
  15. if ((edad>=18) && (edad<=22))
  16. You are not allowed to view links. Register or Login ("%s", &nombre);
  17. else
  18. You are not allowed to view links. Register or Login ("No cumple los requisitos");
  19. }

El problema está en que, al compilarlo y ejecutarlo por consola, muestra bien el apartado de nombre y apellido pero, una vez introducido lo de apellido, se muestra inmediatamente lo de introduzca su edad, y pegado lo de no cumple los requisitos, sin siquiera dejarme introducir la edad.

¿Qué ocurre?
« Última modificación: Noviembre 22, 2015, 06:03:38 pm por blackdrake »

Conectado rollth

  • *
  • Underc0der
  • Mensajes: 875
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #1 en: Noviembre 15, 2015, 06:57:55 pm »
Pues yo veo dos cosas:
-1 Que es scanf("%n".....)? Por lo que tengo entendido es %d cuando quieres introducir un número decimal.
-2 Estás mezclando strings con char. has creado una variable char y después al introducir en el teclado dices que van a introducir un string.

Te dejo el código bien hecho, comprobado que funciona:

Código: C
  1. #include <stdio.h>
  2.  
  3.  
  4. char nombre[20];
  5. char apellidos[20];
  6. int edad;
  7. int main (void)
  8. {
  9. You are not allowed to view links. Register or Login ("Introduzca su nombre: ");
  10. You are not allowed to view links. Register or Login ("%s", &nombre);
  11. You are not allowed to view links. Register or Login ("Introduzca sus apellidos: ");
  12. You are not allowed to view links. Register or Login ("%s", &apellidos);
  13. You are not allowed to view links. Register or Login ("Por ultimo introduzca su edad: ");
  14. You are not allowed to view links. Register or Login ("%d", &edad);
  15. if ((edad>=18) && (edad<=22))
  16. You are not allowed to view links. Register or Login ("%s", &nombre);
  17. else
  18. You are not allowed to view links. Register or Login ("No cumple los requisitos");
  19. }

Rollth
Buen hacker mejor persona.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Desconectado D4RKS0N1K

  • *
  • Underc0der
  • Mensajes: 119
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Noviembre 15, 2015, 07:33:46 pm »
You are not allowed to view links. Register or Login
Pues yo veo dos cosas:
-1 Que es scanf("%n".....)? Por lo que tengo entendido es %d cuando quieres introducir un número decimal.
-2 Estás mezclando strings con char. has creado una variable char y después al introducir en el teclado dices que van a introducir un string.

Te dejo el código bien hecho, comprobado que funciona:

Código: C
  1. #include <stdio.h>
  2.  
  3.  
  4. char nombre[20];
  5. char apellidos[20];
  6. int edad;
  7. int main (void)
  8. {
  9. You are not allowed to view links. Register or Login ("Introduzca su nombre: ");
  10. You are not allowed to view links. Register or Login ("%s", &nombre);
  11. You are not allowed to view links. Register or Login ("Introduzca sus apellidos: ");
  12. You are not allowed to view links. Register or Login ("%s", &apellidos);
  13. You are not allowed to view links. Register or Login ("Por ultimo introduzca su edad: ");
  14. You are not allowed to view links. Register or Login ("%d", &edad);
  15. if ((edad>=18) && (edad<=22))
  16. You are not allowed to view links. Register or Login ("%s", &nombre);
  17. else
  18. You are not allowed to view links. Register or Login ("No cumple los requisitos");
  19. }

Gracias por contestar y tomarte la molestia!
El primero ha sido un fallo muy tonto, y respecto al char, lo que haces de char[20] imagino que sera para especificar cuantos caracteres contendrá, pero, si a su vez quiero hacer de este un vector sería char[20][5] suponiendo que quiera que mi vector tenga cinco posiciones?

Un saludo y gracias

Conectado rollth

  • *
  • Underc0der
  • Mensajes: 875
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #3 en: Noviembre 15, 2015, 08:30:23 pm »
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Pues yo veo dos cosas:
-1 Que es scanf("%n".....)? Por lo que tengo entendido es %d cuando quieres introducir un número decimal.
-2 Estás mezclando strings con char. has creado una variable char y después al introducir en el teclado dices que van a introducir un string.

Te dejo el código bien hecho, comprobado que funciona:

Código: C
  1. #include <stdio.h>
  2.  
  3.  
  4. char nombre[20];
  5. char apellidos[20];
  6. int edad;
  7. int main (void)
  8. {
  9. You are not allowed to view links. Register or Login ("Introduzca su nombre: ");
  10. You are not allowed to view links. Register or Login ("%s", &nombre);
  11. You are not allowed to view links. Register or Login ("Introduzca sus apellidos: ");
  12. You are not allowed to view links. Register or Login ("%s", &apellidos);
  13. You are not allowed to view links. Register or Login ("Por ultimo introduzca su edad: ");
  14. You are not allowed to view links. Register or Login ("%d", &edad);
  15. if ((edad>=18) && (edad<=22))
  16. You are not allowed to view links. Register or Login ("%s", &nombre);
  17. else
  18. You are not allowed to view links. Register or Login ("No cumple los requisitos");
  19. }

Gracias por contestar y tomarte la molestia!
El primero ha sido un fallo muy tonto, y respecto al char, lo que haces de char[20] imagino que sera para especificar cuantos caracteres contendrá, pero, si a su vez quiero hacer de este un vector sería char[20][5] suponiendo que quiera que mi vector tenga cinco posiciones?

Un saludo y gracias

 Lo que he hecho con char nombre[20] es hacer un vector de caracteres, un vector de caracteres es un string. para hacer un array de strings primero crearía un tipo String y después haría el array, te dejo un ajemplo para que entiendas mejor:

Código: C
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.         int i;
  5.         typedef char tipoString[20];
  6.         tipoString nombres[5];
  7.         for (i = 0; i < 5; i++){
  8.                 You are not allowed to view links. Register or Login("%s",&nombres[i]);
  9.         }
  10.         for (i = 0; i < 5; i++){
  11.                 You are not allowed to view links. Register or Login("%s\n,nombres[i]);
  12.         }
  13. }

Rollth
Buen hacker mejor persona.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Desconectado rand0m

  • *
  • Underc0der
  • Mensajes: 214
  • Actividad:
    0%
  • Reputación 0
  • Paso de cosas personales, déjame
    • Ver Perfil
« Respuesta #4 en: Noviembre 16, 2015, 05:45:47 am »
No sé si deberíamos considerarlo importante, pero yo metería las órdenes de los condicionales entre llaves {}.
Por lo demás, a mí el siguiente código me funciona como pides, cambiando el tipo de valor del scanf a decimal "%d":
Código: C
  1.     #include <stdio.h>
  2.      
  3.      
  4.     char nombre;
  5.     char apellidos;
  6.     int edad;
  7.     int main (void)
  8.     {
  9.     You are not allowed to view links. Register or Login ("Introduzca su nombre");
  10.     You are not allowed to view links. Register or Login ("%s", &nombre);
  11.     You are not allowed to view links. Register or Login ("Introduzca sus apellidos");
  12.     You are not allowed to view links. Register or Login ("%s", &apellidos);
  13.     You are not allowed to view links. Register or Login ("Por último introduzca su edad");
  14.     You are not allowed to view links. Register or Login ("%d", &edad);
  15.     if ((edad>=18) && (edad<=22)) {
  16.     You are not allowed to view links. Register or Login ("%s", &nombre); }
  17.     else {
  18.     You are not allowed to view links. Register or Login ("No cumple los requisitos"); }
  19.     }
Podría vivir perfectamente con una mancha de pis en la alfombra, pero qué va, tío: Más complicaciones.

Conectado rollth

  • *
  • Underc0der
  • Mensajes: 875
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #5 en: Noviembre 16, 2015, 08:58:55 am »
You are not allowed to view links. Register or Login
No sé si deberíamos considerarlo importante, pero yo metería las órdenes de los condicionales entre llaves {}.
Por lo demás, a mí el siguiente código me funciona como pides, cambiando el tipo de valor del scanf a decimal "%d":
Código: C
  1.     #include <stdio.h>
  2.      
  3.      
  4.     char nombre;
  5.     char apellidos;
  6.     int edad;
  7.     int main (void)
  8.     {
  9.     You are not allowed to view links. Register or Login ("Introduzca su nombre");
  10.     You are not allowed to view links. Register or Login ("%s", &nombre);
  11.     You are not allowed to view links. Register or Login ("Introduzca sus apellidos");
  12.     You are not allowed to view links. Register or Login ("%s", &apellidos);
  13.     You are not allowed to view links. Register or Login ("Por último introduzca su edad");
  14.     You are not allowed to view links. Register or Login ("%d", &edad);
  15.     if ((edad>=18) && (edad<=22)) {
  16.     You are not allowed to view links. Register or Login ("%s", &nombre); }
  17.     else {
  18.     You are not allowed to view links. Register or Login ("No cumple los requisitos"); }
  19.     }

CIerto, no me había fijado en los condicionales :D

Rollth
Buen hacker mejor persona.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 5289
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2015
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1454
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2476
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3261
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon