C/Visual C - Mostrar el sexo de una persona según la letra introducida

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 14 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Mostrar el sexo de una persona según la letra introducida

Publicado por Daniel (1 intervención) el 19/12/2020 01:47:25
Buenas, soy nuevo en el foro. Tengo un problema para un código en C que no consigo resolver, apenas conozco el lenguaje.
El enunciado es el siguiente: Realiza un programa en C que muestre por pantalla el sexo de una persona según la letra
introducida h, H, m, M. Utiliza switch.

En si el resultado del enunciado está resuelto pero hay un error y es que al introducir una cadena de caracteres (por ejemplo: hamburguesa) el programa determina que es masculino por que empieza por h.
Necesitaría saber como establecer un máximo de caracteres (1) y en caso de que sea mayor, que de error.
Gracias por la ayuda.

Este es mi código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
int main()
{
 
	int c;
	char sexo;
    printf ("Hola, introduce el sexo\n");
    scanf("%c",&sexo);
 
    if(sexo=='H' || sexo=='h'){
		c=1;
	} else if (sexo=='M' || sexo=='m'){
		c=2;
	} else {
		c=3;
	}
 
	switch (c)	 {
		case 1:
			printf ("\n El sexo es: Masculino");
			break;
		case 2:
			printf ("\n El sexo es: Femenino");
			break;
		case 3:
			printf ("\n El sexo introducido no es correcto");
	}
 
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 265
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Mostrar el sexo de una persona según la letra introducida

Publicado por dario (82 intervenciones) el 19/12/2020 09:22:18
Hola, espero esto te ayude.
Salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
int main()
{
    char sexo;
 
    printf ("Hola, introduce el sexo\n");
    scanf("%c",&sexo);
 
    switch (sexo) {
		case 'h':
		case 'H':
			printf ("El sexo es: Masculino");
			break;
		case 'f':
		case 'F':
			printf ("El sexo es: Femenino");
			break;
		case 3:
			printf ("El sexo introducido no es correcto");
	}
 
return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar