Ir ao conteúdo

Posts recomendados

Postado

Creio que o código está certo porém no resultado está mostrando letras e não mostra o resultado o que pode ser?

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main() {
	float capital, juros, montante;
	int meses;
	printf("Digite o valor do capital investido: ");
	fflush(stdin);
	scanf("%f",&capital);
	printf("Digite a taxa de juros: ");
	fflush(stdin);
	scanf("%f",&juros);
	printf("Digite quantos meses foi aplicado:");
	fflush(stdin);
	scanf("%d", &meses);
	montante = capital*(1+juros/100);
	montante = pow(montante, meses);
	printf("O montante a ser resgatado sera:%.2f", montante);
	return 0;
}

 

  • Curtir 1
Postado

@Irwing Seiji Ato Olá. Realmente não faz sentido esse seu cálculo:

montante = capital * (1 + juros / 100); // aqui seria bom cuidar da precedẽncia de operadores, mas não é só isso a causa do erro
montante = pow(montante, meses);

Apenas postar como poderia ficar seu código sem a função fflush(stdin);, que não é nada recomendável usar:

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

void limpa_linha() {
    scanf("%*[^\n]");
    scanf("%*c");
}

int main() {

    float capital, juros, montante;
    int meses;

    printf("Digite o valor do capital investido: ");
    scanf("%f", &capital);
    limpa_linha();

    printf("Digite a taxa de juros: ");
    scanf("%f", &juros);
    limpa_linha();

    printf("Digite quantos meses foi aplicado: ");
    scanf("%d", &meses);
    limpa_linha();

    // cálculo do montante

    printf("O montante a ser resgatado sera: %.2f", montante);

    return 0;
}

Evite usar a função fflush(stdin); para limpar a sujeira do buffer

Postado

@Irwing Seiji Ato Olá. A questão está no cálculo do montante (juros composto)

Daria para passar a resposta, mas não vejo que é a melhor forma de levar  você a aprender a programar 

Sugiro que dê uma pesquisada sobre o função pow que vai ajudar muito:

http://www.cplusplus.com/reference/cmath/pow/?kw=pow

Só vou dar a dica que, para esse exercício, essa função recebe como argumentos o valor dos juros e a quantidade de meses (Fica mais fácil agora) rs...

Seria quase isso que você fez:

montante = capital * (1.0 + (juros/100));

E é nessa linha que entra a função pow :)

 

Postado

Não entedi fiz isso 

montante = pow(capital*(1+(juros/100)),meses);

E mesmo assim não aparece o cálculo

Li os casos que pode dar erro, e não era para dar erro visto que a base não é negativa, e o expoente é um número inteiro, e base não é zero nem o expoente é zero, a base também não é zero e o expoente não é negativo.

Eu acho que o valor é muito grande para ser representado deveria usar double nesse caso para o que seja representado o valor?

Postado

Agora aparece um 0.00 nada novo não está aparecendo o número

adicionado 5 minutos depois

Acho que o código ficaria assim 

	montante = (1 + juros / 100);
	montante = pow(montante, meses);
	montante = capital * montante;

Tem que elevar ao expoente primeiro depois multiplicar, mas mesmo assim o número não aparece não sei porque

Postado

Tenta da seguinte forma:

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

int main() {
    double capital = 0.0;
    double juros = 0.0;
    double montante = 0.0;

    int meses = 0;

    printf("Digite o valor do capital investido: ");
    scanf(" %lf", &capital);

    printf("Digite a taxa de juros: ");
    scanf(" %lf", &juros);
    juros /= 100;

    printf("Digite quantos meses foi aplicado: ");
    scanf(" %i", &meses);

    montante = capital * (1 + juros * meses);
    printf("O montante a ser resgatado sera: %.2f \n", montante);
    return 0;
}

 

Postado

Agora funcionou está mostrando os valores e coloquei na fórmula, não sei porque não estava funcionando pegar os números float com %f, e pegar os int com %d

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main() {
	double capital = 0.0;
    double juros = 0.0;
    double montante = 0.0;

	int meses = 0;	
    printf("Digite o valor do capital investido: ");
    scanf(" %lf", &capital);
    printf("Digite a taxa de juros: ");
    scanf(" %lf", &juros);
	juros /= 100;
    printf("Digite quantos meses foi aplicado: ");
    scanf(" %i", &meses);
    montante = (1 + juros * meses);
    montante = pow(montante,meses);
	montante = capital * montante; 
    printf("O montante a ser resgatado sera: %.2f \n", montante);
	return 0;
}

Ficou assim

Postado

Corrigi agora está certo

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main() {
	double capital = 0.0;
    double juros = 0.0;
    double montante = 0.0;
	int meses = 0;	
    printf("Digite o valor do capital investido: ");
    scanf(" %lf", &capital);
    printf("Digite a taxa de juros: ");
    scanf(" %lf", &juros);
	juros /= 100;
    printf("Digite quantos meses foi aplicado: ");
    scanf(" %i", &meses);
    montante = (1 + juros);
    montante = pow(montante,meses);
	montante = capital * montante; 
    printf("O montante a ser resgatado sera: %.2f \n", montante);
	return 0;
}

 

Postado

@Irwing Seiji Ato Olá. Seria esse o cálculo de juros composto, tal como o @AdrianoSiqueira mostrou:

montante = capital * pow(1.0 + (juros / 100), meses);

Capital = 5000.00

Juros = 0.01 por mês

Meses = 12 meses

Montante = 5634.12

 

Em Python se faz em uma linha isso:

>>> 5000.00 * pow(1.0 + 0.01, 12)
5634.125150659849

Segue o código (agora corrigido):

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

void limpa_linha() {
    scanf("%*[^\n]");
    scanf("%*c");
}

int main() {
    double capital, juros, montante;
    int meses;

    printf("Digite o valor do capital investido: ");
    scanf("%lf", &capital);
    limpa_linha();

    printf("Digite a taxa de juros: ");
    scanf("%lf", &juros);
    limpa_linha();

    printf("Digite quantos meses foi aplicado: ");
    scanf("%d", &meses);
    limpa_linha();

    montante = capital * pow(1.0 + (juros / 100), meses);

    printf("O montante a ser resgatado sera: %.2f\n", montante);

    return 0;
}

807426610_Capturadetelade2019-05-2922-09-21.png.1f1a5177c53fd70eb2d833984aad8fec.png

 

Atualizando....

Declaração da função pow em C 

double pow (double base, double exponent);

De fato essa função retorna um double, e não um float rs... (apesar de funcionar aqui no Linux) 

Para mais detalhes recomendo esse link:

https://www.ime.usp.br/~pf/algoritmos/apend/math.h.html

Falha minha :)

Corrigi o código acima 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!