Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/09/2009, 14:26
JuanLVBR
 
Fecha de Ingreso: septiembre-2009
Ubicación: Burgos
Mensajes: 28
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: C error en una condicional

Cometes el error ya inicializando la variable.

Declaras un char en el que tu intención es guardar dos chars, deberías declarar un vector de dos chars, o bien una cadena de carácteres, o bien dos chars.

Y luego como bien dice Luciano9, los vectores (en este caso cadena de carácteres) no se pueden comparar con los operadores >, < o =, igual que no se pueden sumar ni concatenar así como así, hay que hacerlo índice a índice o bien utilizando las funciones declaradas en la librería string.h (que al fin y al cabo hacen lo mismo).

O bien:
Código:
#include <stdio.h>
#include <conio.h>

int main(){
	char var[2];
	printf("Seleccione su sexo[Hm/Mj]: ");
	scanf("%c", &var[0]);
	scanf("%c", &var[1]);
	if(var[0]=='H' && var[1]=='m')
		printf("Es hombre");
	else if(var[0]=='M' && var[1]=='j')
		printf("Es mujer");
	getch();
	return 0;
}
O bien:

Código:
#include <stdio.h>
#include <conio.h>
#include <string.h>

int main(){
	char var[2];
	printf("Seleccione su sexo[Hm/Mj]: ");
	scanf("%c", &var[0]);
	scanf("%c", &var[1]);
	if(strcmp("Hm", var)==0)
		printf("Es hombre");
	else if(strcmp("Mj", var)==0)
		printf("Es mujer");
	getch();
	return 0;
}
Te he cambiado también la entrada de datos, como son sólo dos carácteres no merce la pena un for para almacenar, y no lo hago en un solo scan o gets porque habría que controlar que al usuario le dé por meter más de 2 carácteres, de todos modos si quieres hacerlo así, tendrías que pasarle el puntero al primer elemento del vector al scanf, sería simplemente:
Código:
scanf("%s", var);

Última edición por JuanLVBR; 06/09/2009 a las 14:51 Razón: He puesto los códigos.