Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jhosefer

Funções

Recommended Posts

Nao consegui encontrar o erro, dá erro de compilação. Alguem poderia me ajudar aí?

 

# include <stdio.h>
# include <stdlib.h>


int Fatorial ( int A )
{
int i, fat = 1;

for ( i = 1; i <= A; i++ )
	fat *= i ;

return fat;
}

int Potencia ( int X, int pot )
{
int i;
float pot_num = 1;

for ( i = 1; i <= pot; i++ )
	pot_num *= X;

return pot_num ;
}

float Seno ( float ang )
{
int i, sinal = 1;
float sin = 0;

for ( i = 1; i < 100; i++ )
{
	sin = sin + sinal * (Potencia(ang, 2*i-1) / Fatorial(2*i-1)) ;
	sinal *= -1 ;
}

return sin;

}

int main ()
{

printf ( "%f", Seno(3.1415) );
system ("PAUSE");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro que consegui ver é que potencia está retornando um float quando era para retornar um int... chamar pot_num de int talvez resolva...

 

 

Quais são os erros que estão sendo mostrados?

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jhosefer,

 

Na função int Potencia ( int X, int pot ), você realiza operações aritméticas entre um int e um float. O compilador deve ter reclamado disto.

Na mesma função você declara o tipo de retorno como int, mas está tentando retornar de fato um float.

 

Espero ter ajudado, FLW!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz alguma modificações, porem ainda não consigo o resultado esperado...

Para qualquer valor do argumento eu sempre tenho 1 como saida. :/

 

 

# include <stdio.h>
# include <stdlib.h>

float Potencia ( int base, int A )
{
int i, pot = 1;

for ( i = 1; i <= A; i++ )
	pot *= base ;
return pot ;
}

int Fatorial ( int A )
{
int i, fat = 1;

for ( i = 1; i <= A; i++ )
	fat *= i ;
return fat ;
}

float Seno ( int ang )
{
float sin = 0;
int sinal = 1, i ;

for ( i = 1; i <= 100; i++ )
{
	sin += sinal * ( Potencia( ang, 2*i-1 ) / Fatorial(2*i-1) );
	sinal *= -1 ;
}
return 1 ;
}

int main ()
{
printf ("%f\n", Seno(30));
system("PAUSE");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jhosefer,

 

Você sempre tem 1 como saída pois a sua função float Seno ( int ang ) esta retornando sempre '1'.

 

Espero ter ajudado, FLW!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.