[ Foro de C ]

me sale error este programa al compilar - valores "char"

11-Jul-2014 16:18
Invitado (sara)
2 Respuestas

Hola!!! Este programa, me compila pero cuando me pide una letra y escribo cualquier letra me sale error... ¿qué está mal?


#include<stdio.h>
//Crear un programa que pida una letra al usuario y diga si se trata de una vocal.

int main()
{
	char letra;
	char a,e,i,o,u;
	printf("Teclea una letra:\n");
	scanf("%c", letra);
	{
		if (letra==a && letra==e && letra==i && letra==o && letra==u) printf("Se trata de una vocal");
		else
		printf("Se trata de una consonante");
	}
	return 0;
}




11-Jul-2014 17:58
Nacho Cabanes (+84)

Los valores de carácter se deben indicar entre comillas simples. Además estás uniendo las condiciones con un "Y", cuando debería ser un "O" ("si la letra es una A, o es una E, o ...").


if (letra=='a' || letra=='e' || ...


Y no tendrás que declarar las variables a, e, i, o ,u, porque no son datos que vayan a variar, sino cosas que puede introducir el usuario como valor para una única variable ("letra").


11-Jul-2014 18:21
Invitado (sara)

Sí, es verdad, después de enviar la pregunta miré el pdf y me di cuenta de mi error de letra=='a' (que faltaba la comilla simple) y lo de o, que claramente y estaba fatal. Aunque no sabia  que no tenia que declarar las variables.Gracias de todas formas.


#include<stdio.h>
//Crear un programa que pida una letra al usuario y diga si se trata de una vocal.

int main()
{
	char letra;
	printf("Teclea una letra:\n");
	scanf("%c",&letra);
	{
		if (letra=='a' || letra=='e' || letra=='i' || letra=='o' | letra=='u') printf("Se trata de una vocal");
		else
		printf("Se trata de una consonante");
	}
	return 0;
}







(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)