0
I’m working on a code for letter detection using a function, for a classroom exercise. The idea is that when I type a letter the function detects if it is:
- maiscula = 1
- minuscule = 0
- something else = -1.
This returns 1, 0 and -1 returns to the main()
.
My return is always -1.
int main()
{
char le;
int x; x=0;
printf ( " \n Programa que detecta se a letra e maiuscula e ou
minuscula");
printf (" \nDigite uma letra : ");
scanf ("%s", &le);
detletra (l);
if ( x = 0)
{
printf (" \n A letra digitada e minuscula! " );
}
else if ( x = 1)
{
printf (" \n A letra digitada e maiscula! " );
}
else if ( x = -1)
{
printf (" \n A letra digitada não pertence ao alfabeto " );
}
printf ( " \n %d", x);
}
void detletra ( char letra ) // função processamento dos dados
{
if (letra >= 'a' && letra <= 'z') // Verifica se a letra é minuscula
{
int x;
x = 0;
return x; // retorna o valor para main
}
else if (letra >= 'A' && letra <= 'Z' ) // Verifica se a letra é maiscula
{
int x;
x = 1;
return x; // retorna o valor para main
}
else // Verifica se a letra não é do alfabeto
{
int x;
x = -1;
return x; // retorna o valor para main
}
}
return type of the method is as void
– Bernardo Lopes
not to pass the return of the function to the variable x
– Bernardo Lopes
Thanks for the return, in case I switch to int, the compiler claims the message |D: UNISSINOS language c Work 1 _v2 main. c|32|error: Conflicting types for 'detletra'| D: UNISSINOS language c Work 1 _v2 main. c|33|note: an argument type that has a default Promotion can’t match an Empty Parameter name list declaration|
– lucas haetinger