He hecho un programa que reconozca el carácter introducido, y el compilador me da errores no dejándome compilar. ¿Veis que puede estar ma?
#include <stdio.h>
#include <math.h>
void main ()
{
char z;
int t;
printf ("Introduce un caracter");
scanf ("%c%*c", z);
if (z<57)
{
t=1;
}
else
{
if (z>97)
{
if (z=!'a'&&z=!'e'&&z=!'i'&&z=!'o'&&z=!'u')
{
t=2;
}
else
{
t=3;
}
}
else
{
if (z=!'A'&&z=!'E'&&z=!'I'&&z=!'O'&&z=!'U')
{
t=4;
}
else
{
t=5;
}
}
}
switch (t);
{
case 1:
printf ("No es una letra. No es una vocal. No es una consonante. No es una mayúscula. No es una minúscula. Es un dígito.");
break;
case 2:
printf ("Es una letra. No es una vocal. Es una consonante. No es una mayúscula. Es una minúscula. No es un dígito.");
break;
case 3:
printf ("Es una letra. Es una vocal. No es una consonante. No es una mayúscula. Es una minúscula. No es un dígito.");
break;
case 4:
printf ("Es una letra. No es una vocal. Es una consonante. No es una mayúscula. No es una minúscula. No es un dígito.");
break;
case 5:
printf ("Es una letra. No es una vocal. Es una consonante. No es una mayúscula. No es una minúscula. No es un dígito.");
break;
}
}
Me da problemas con el swith y con estan condiciones: "if (z=!'a'&&z=!'e'&&z=!'i'&&z=!'o'&&z=!'u')")
para la operación distinto, es !=, no =!.
Ok, gracias! Solo me queda el error del switch... TT:
Me dice:
case label not within a switch statement
break statement not within loop or switch
en todo switch siempre debe haber un case default
ok.. la he colocado, pero persiste el error:
switch (t);
{
case 1:
printf ("No es una letra. No es una vocal. No es una consonante. No es una mayúscula. No es una minúscula. Es un dígito.");
break;
case 2:
printf ("Es una letra. No es una vocal. Es una consonante. No es una mayúscula. Es una minúscula. No es un dígito.");
break;
case 3:
printf ("Es una letra. Es una vocal. No es una consonante. No es una mayúscula. Es una minúscula. No es un dígito.");
break;
case 4:
printf ("Es una letra. No es una vocal. Es una consonante. No es una mayúscula. No es una minúscula. No es un dígito.");
break;
case 5:
printf ("Es una letra. No es una vocal. Es una consonante. No es una mayúscula. No es una minúscula. No es un dígito.");
break;
default:
printf ("Error. Debes introducir una letra o un dígito");
}
Tienes un ; de mas en esta linea:
switch (t);
quita el ;.
En cuanto al default, es opcional, no es estrictamente necesario.
En cuanto a otros errores del código como este:
void main ()
Lee este hilo: click (https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html)
Saludos
Gracias por lo del swith! quitando ese ; ya compila ;D
Sin embargo al ejecutarlo e intrducir un carácter el programa deja de responder.. TT ideas?
Podrías poner el código tal como lo tienes ahora?
Cita de: Littlehorse en 23 Septiembre 2010, 19:27 PM
En cuanto al default, es opcional, no es estrictamente necesario.
Vaya, fallo mío entonces. No se por qué pensaba que era necesario.
Cita de: raulgombru en 23 Septiembre 2010, 19:36 PM
Gracias por lo del swith! quitando ese ; ya compila ;D
Sin embargo al ejecutarlo e intrducir un carácter el programa deja de responder.. TT ideas?
De nada.
Estas utilizando mal scanf, lee este link (http://www.cplusplus.com/reference/clibrary/cstdio/scanf/)
CitarThe function expects a sequence of references as additional arguments, each one pointing to an object of the type specified by their corresponding %-tag within the format string, in the same order.
For each format specifier in the format string that retrieves data, an additional argument should be specified.
These arguments are expected to be references (pointers): if you want to store the result of a fscanf operation on a regular variable you should precede its identifier with the reference operator, i.e. an ampersand sign (&), like in:
int n;
scanf ("%d",&n);
Te recomendaría que revises los apuntes de clase si es que tienes, o que busques un buen libro para comenzar con los conceptos básicos implicados. Ademas, utiliza el buscador del foro, ya que este tema esta tratado varias veces y podrás encontrar varios posts para guiarte.
Cualquier cosa ya sabes.
Saludos