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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


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

Desconectado Desconectado

Mensajes: 81


Ver Perfil
Problemas en C
« en: 15 Noviembre 2015, 20:21 pm »

Me puse a probar cosas e intente hacer un programa que te pidiera nombre apellido y edad, y si la edad estaba comprendida entre 18 y 22 devolvia tu nombre por pantalla.

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

Tuve que poner

if ((edad>18) && (edad<=22))

porque si ponia if ((edad=>18) && (edad<=22))

me devolvia el siguiente error ;

error: expected expression before ‘>’ token
 if ((edad=>18) && (edad<=22))

Decidí quitar el = y probar a ver, y el problema llega cuando compilo, ejecuto , pregunta nombre, introduzco, pide apellido , lo pongo y me sale al lado, introducir la edad pegado de no cumple los requisitos.

¿Alguien podria ayudarme?


En línea

A.I.

Desconectado Desconectado

Mensajes: 61


Ver Perfil
Re: Problemas en C
« Respuesta #1 en: 15 Noviembre 2015, 20:50 pm »


Código
  1. scanf ("%n", &edad);
  2.  

prueba con %d


En línea

Br1ant


Desconectado Desconectado

Mensajes: 791


Incluso la "nada" es un "algo"


Ver Perfil WWW
Re: Problemas en C
« Respuesta #2 en: 15 Noviembre 2015, 22:30 pm »

Como diría @A.I. tendrías que usar %d en vez de %n.

Citar
porque si ponia if ((edad=>18) && (edad<=22))

me devolvia el siguiente error ;

error: expected expression before ‘>’ token
if ((edad=>18) && (edad<=22))

El signo está mal. Es:

Código
  1. if ((edad>=18) && (edad<=22))

Además creo que tienes que especificar la longitud de los char:

Código
  1. char nombre[10], apellidos[10];
« Última modificación: 15 Noviembre 2015, 22:33 pm por g3ck0 » En línea

Namasté, criatura.
v4char

Desconectado Desconectado

Mensajes: 61



Ver Perfil
Re: Problemas en C
« Respuesta #3 en: 15 Noviembre 2015, 23:37 pm »

te he hecho un programa pero en apellidos no puedes poner espacios porque si no te lo detecta como otra y salta
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.   char nombre[20];
  6.   char apellidos[40];
  7.   int edad;
  8.  
  9.   printf("Nombre: ");
  10.   scanf("%20s", nombre);
  11.  
  12.   printf("Apellidos: ");
  13.   scanf("%40s", apellidos);
  14.  
  15.   printf("Edad: ");
  16.   scanf("%i", &edad);
  17.  
  18.   if (18 > edad > 22)
  19.   {
  20.      printf("Hola %s %s", nombre, apellidos);
  21.   } else
  22.   {
  23.      printf("No cumples los requisitos");
  24.   }
  25.  
  26.   return 0;
  27. }
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Problemas en C
« Respuesta #4 en: 16 Noviembre 2015, 20:04 pm »

Prueba con esto:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main() {
  5.   char nombre[20];
  6.   char apellidos[40];
  7.   int edad;
  8.  
  9.   printf("Nombre: ");
  10.   fgets(nombre, 19, stdin);
  11.   *strchr(nombre, '\n') = '\0';
  12.   printf("Apellidos: ");
  13.   fgets(apellidos, 39, stdin);
  14.   *strchr(apellidos, '\n') = '\0';
  15.   printf("Edad: ");
  16.   scanf("%i", &edad);
  17.  
  18.   if (edad >= 18 && edad <= 22) {
  19.      printf("Hola %s %s", nombre, apellidos);
  20.   }
  21.   else {
  22.      printf("No cumples los requisitos");
  23.   }
  24.  
  25.   return 0;
  26. }
  27.  
Con fgets lees toda la cadena de entrada hasta pulsar ENTER y recoge hasta un máximo de caracteres que le has informado como último parámetro de la función.
Cómo también lee el carácter de nueva línea debes convertirlo en carácter nulo, y eso es lo que hace la línea donde se encuentra la función strchr.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines