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.
#include <stdio.h>
char nombre;
char apellidos;
int edad;
int main (void)
{
printf ("Introduzca su nombre");
scanf ("%s", &nombre);
printf ("Introduzca sus apellidos");
scanf ("%s", &apellidos);
printf ("Por último introduzca su edad");
scanf ("%n", &edad);
if ((edad>18) && (edad<=22))
printf ("%s", &nombre);
else
printf ("No cumple los requisitos");
}
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?
Como diría @A.I. tendrías que usar %d en vez de %n.
Citarporque 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:
if ((edad>=18) && (edad<=22))
Además creo que tienes que especificar la longitud de los char:
char nombre[10], apellidos[10];
te he hecho un programa pero en apellidos no puedes poner espacios porque si no te lo detecta como otra y salta
#include <stdio.h>
int main()
{
char nombre[20];
char apellidos[40];
int edad;
printf("Nombre: ");
scanf("%20s", nombre);
printf("Apellidos: ");
scanf("%40s", apellidos);
printf("Edad: ");
scanf("%i", &edad);
if (18 > edad > 22)
{
printf("Hola %s %s", nombre, apellidos);
} else
{
printf("No cumples los requisitos");
}
return 0;
}
Prueba con esto:
#include <stdio.h>
#include <string.h>
int main() {
char nombre[20];
char apellidos[40];
int edad;
printf("Nombre: ");
fgets(nombre, 19, stdin);
*strchr(nombre, '\n') = '\0';
printf("Apellidos: ");
fgets(apellidos, 39, stdin);
*strchr(apellidos, '\n') = '\0';
printf("Edad: ");
scanf("%i", &edad);
if (edad >= 18 && edad <= 22) {
printf("Hola %s %s", nombre, apellidos);
}
else {
printf("No cumples los requisitos");
}
return 0;
}
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.