• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

chharlie

pow e for

6 mensagens neste tópico

A minha duvida tem mais a ver do porque de esta funçao nao estar a funcionar neste programazito

#include <stdio.h>
#include <math.h>

float val(float x,int n,float t){

int i;
float val=0.0;

for(i=1;i<=n;i++)
val+=x/(pow((1+t),(float) i));
return val;
}

int main(){

float x,t;
int n;

printf("Introduza a taxa em vigor: ");
scanf("%f",&t);
printf("Introduza o numero de anos: ");
scanf("%d",&n);
printf("Introduza o valor de x: ");
scanf("%f",&x);
printf("O VAL = %f\n",val(x,n,t));
return 1;
}

ja tentei vendo as bibliotecas de C e as referencias para a linguagem alterar pow para powf visto estar a trabalhar com doubles e mesmo assim nada

o erro e este:

/tmp/ccg0UAOK.o: In function `val':
prog5.c:(.text+0x37): undefined reference to `pow'
collect2: ld returned 1 exit status

outro erro é, pelo que eu li posso fazer a declaraçao e inicializaçao das variaveis dentro de um ciclo for, porem sempre que faço isso da-me este erro:

prog0408.c: In function ‘main’:

prog0408.c:7: error: ‘for’ loop initial declaration used outside C99 mode

prog0408.c:8: error: ‘for’ loop initial declaration used outside C99 mode

um exemplo de programa onde me da este erro

#include <stdio.h>

int main(){

//int a,b;

for(int a=1;a<=5;a++){
  for(int b=1;b<=10;b++)
    printf("%2d x %2d = %2d\n",a,b,a*b);
printf("Pressione a tecla ENTER");
getchar();
}
return 1;
}

eu sei que sao duvidas muito futeis mas gostava que alguem mas esclarece-se.

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para o pow tens de linkar com a biblioteca do math. Usa a flag -lm na compilação.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

problema resolvido. apesar de achar estupido no gcc ter que linkar a biblioteca math.h e nao ter que linkar outras como stdio.h ou stdlib.h

mesmo assim obrigado pelo esclarecimento

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora