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
  • 1353 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. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca su nombre");
  10. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  11. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca sus apellidos");
  12. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &apellidos);
  13. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Por último introduzca su edad");
  14. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%n", &edad);
  15. if ((edad>=18) && (edad<=22))
  16. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  17. else
  18. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("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 »

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 874
  • 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. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca su nombre: ");
  10. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  11. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca sus apellidos: ");
  12. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &apellidos);
  13. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Por ultimo introduzca su edad: ");
  14. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%d", &edad);
  15. if ((edad>=18) && (edad<=22))
  16. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  17. else
  18. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("No cumple los requisitos");
  19. }

Rollth
Buen hacker mejor persona.
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado D4RKS0N1K

  • *
  • Underc0der
  • Mensajes: 119
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Noviembre 15, 2015, 07:33:46 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
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. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca su nombre: ");
  10. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  11. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca sus apellidos: ");
  12. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &apellidos);
  13. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Por ultimo introduzca su edad: ");
  14. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%d", &edad);
  15. if ((edad>=18) && (edad<=22))
  16. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  17. else
  18. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("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

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 874
  • 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 »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta
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. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca su nombre: ");
  10. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  11. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca sus apellidos: ");
  12. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &apellidos);
  13. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Por ultimo introduzca su edad: ");
  14. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%d", &edad);
  15. if ((edad>=18) && (edad<=22))
  16. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  17. else
  18. No tienes permisos para ver links. Registrate o Entra con tu cuenta ("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.                 No tienes permisos para ver links. Registrate o Entra con tu cuenta("%s",&nombres[i]);
  9.         }
  10.         for (i = 0; i < 5; i++){
  11.                 No tienes permisos para ver links. Registrate o Entra con tu cuenta("%s\n,nombres[i]);
  12.         }
  13. }

Rollth
Buen hacker mejor persona.
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta

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.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca su nombre");
  10.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  11.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca sus apellidos");
  12.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &apellidos);
  13.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Por último introduzca su edad");
  14.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%d", &edad);
  15.     if ((edad>=18) && (edad<=22)) {
  16.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre); }
  17.     else {
  18.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("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.

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 874
  • 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 »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
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.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca su nombre");
  10.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre);
  11.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Introduzca sus apellidos");
  12.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &apellidos);
  13.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("Por último introduzca su edad");
  14.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%d", &edad);
  15.     if ((edad>=18) && (edad<=22)) {
  16.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("%s", &nombre); }
  17.     else {
  18.     No tienes permisos para ver links. Registrate o Entra con tu cuenta ("No cumple los requisitos"); }
  19.     }

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

Rollth
Buen hacker mejor persona.
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta
No tienes permisos para ver links. Registrate o Entra con tu cuenta

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 6983
Ú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: 2180
Ú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: 1588
Ú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: 2837
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

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