Jhosefer 0 Denunciar post Postado Abril 24, 2012 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
Renato Utsch 24 Denunciar post Postado Abril 24, 2012 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
GBecker 51 Denunciar post Postado Abril 24, 2012 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
Jhosefer 0 Denunciar post Postado Abril 24, 2012 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
GBecker 51 Denunciar post Postado Abril 25, 2012 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