Ir ao conteúdo

Posts recomendados

Postado

Já procurei aqui no forum se já tem um tópico disso mas ainda nenhum sobre a recursividade em juros compostos, então, minha dúvida é a seguinte o que errei nesse código para estar dando essa mensagem:
"erro: o programa blabla.exe parou de funcionar"

e se minha lógica está correta:

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

double juroscompostos(double valor, double taxa, int meses){
   if (meses==0)
     return valor;   
   return valor * juroscompostos(valor, 1 + taxa/100, meses);
}

int main(){
	double c,j;
	int t;
	  printf("Digite o valor presente:");
	  scanf("%lf",&c);
	  printf("Digite o tempo:");
	  scanf("%d",&t);
	  printf("Digite a taxa de juros:");
	  scanf("%lf",&j);
	printf("\n");
	printf("\nM = %2.lf\n",juroscompostos(c,j,t));	
	system("pause");
	return 0;
}

Só consigo inserir os valores, dai o programa para e trava.

 

Valeu 

Postado

@Victorbg  de uma olhada e ve se concorda com o que fiz:

 

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

double juroscompostos(double,double,int);
int main(){
	double c,j,valor;
	int t;
	  printf("Digite o valor presente:");
	  scanf("%lf",&c);
	  printf("Digite o tempo:");
	  scanf("%d",&t);
	  printf("Digite a taxa de juros:");
	  scanf("%lf",&j);
	printf("\n");
    valor = juroscompostos(c,j,t);
    printf("Valor Apos a Aplicacao %.2lf",valor);
	system("pause");
	return 0;
}
double juroscompostos(double valor, double taxa, int meses){

    double Total;
   if (meses==0)
   {
       return valor;
   }
    else
    {

        valor = valor  + (valor * (taxa / 100));
        meses --;
        Total = juroscompostos(valor,taxa,meses);
 	 return Total;
    }

   
}

 

Postado

Concordei com o que você fez!! e deu certo o código sem erros e sem crises... só tenho umas dúvidas em como eu faria também se eu quisesse retornar diretamente chamando a própria função e também não consegui entender a parte dos meses só que está como --, o menos é por que seria com base no cálculo do mês anterior né?! Fiquei aqui umas boas horas quebrando a cabeça com esse exercicio rs Valeeu pela ajuda!!!

Postado

@Victorbg OK 

da pra retornar a própria chamada só que não e uma boa pratica de programação como também a função GOTO. 

 

olha meses --;  e o mesmo que menos = menos - 1;

então meses -- e o decremento em 1 de meses.

por nada bons estudos.

precisando de alguma ajuda estamos aqui abraço.

Postado

Valeeu @Xandrules!! acho que agora entendi, sobre o -- esse até já lembrava que era uma subtração -1, a minha dúvida era mais na lógica da questão que conforme a aplicação do valor vai sendo realizada os meses vão sendo subtraídos eu imaginei, mas deu para entender melhor!

Estou com dúvida em outro exercicio aqui, outra vez o problema deve ter ficado na lógica.

Escreva uma função que faça a procura sequencial de um valor passado por parâmetro num vetor também passado por parâmetro. Obs. Retornar o índice se encontrado, ou -1 se não encontado.
Protótipo: int  buscavetor (int *vet, int tam, int  valor)

 

dai fiz assim:

int buscaVetor(int *vet, int tam, int valor){
	if(valor!=*vet)
	   return -1;
	return buscaVetor(vet,tam,valor);
}

int main(){
	int num, achou;
	int vet[5]={1,7,3,6,5};
	
	printf("Digite um numero a ser pesquisado:\n");
	scanf("%d",&num);
	
	achou = buscaVetor(vet,5,num);
	
	if(achou != -1)
	   printf("Achou o valor %d na posicao %d do vetor.",num,achou);
	else
	   printf("Nao achou o valor %d no vetor",num);
	
	system("PAUSE");
	return 0;

}

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!