Estou com um probleminha, este meu programa (linguagem C ) compila, mas na hora de colocar a quantidade de parcelas ele gera o erro de memória, que ela não pode ser written.
Não consigo achar o lugar onde esta o erro, se alguém puder me ajudar eu agradeço.
A estrutura é essa mesmo, caso acharem melhor que eu melhore, pois os módulos estão grandes..
#include <stdio.h>
#include <conio.h>
float valorCarro()
{
float x;
printf("Digite o valor do carro");
scanf("%f",&x);
return(x);
}
void lerParcelas( float *vrcarro, int *qntparcela , float *vrparcela, float *vrfinal )
{
int tabela[10][2] = { {6,3},{12,6},{18,9},{24,12},{30,15},{36,18},{42,21},{48,24},{54,27},{60,30} }, x;
printf("Na tabela a seguir o primeiro numero corresponde a quantidade de parcelas e o da frente corresponde ao valor de juros\n");
for (int i=0;i<10;i++)
{
for (int j=0;j<2;j++)
{
printf(" %d ",tabela[i][j]);
}
printf("\n");
}
printf("Digite a quantidade de parcelas, caso for compra a vista digite 1: ");
scanf("%d",*qntparcela);
x = *qntparcela;
switch(x)
{
case 1: *vrfinal = *vrcarro - (*vrcarro*20/100);
break;
case 6: *vrfinal = *vrcarro + (*vrcarro*3/100);
break;
case 12: *vrfinal = *vrcarro + (*vrcarro*6/100);
break;
case 18: *vrfinal = *vrcarro + (*vrcarro*9/100);
break;
case 24: *vrfinal = *vrcarro + (*vrcarro*12/100);
break;
case 30: *vrfinal = *vrcarro + (*vrcarro*15/100);
break;
case 36: *vrfinal = *vrcarro + (*vrcarro*18/100);
break;
case 42: *vrfinal = *vrcarro + (*vrcarro*21/100);
break;
case 48: *vrfinal = *vrcarro + (*vrcarro*24/100);
break;
case 54: *vrfinal = *vrcarro + (*vrcarro*27/100);
break;
case 60: *vrfinal = *vrcarro + (*vrcarro*30/100);
break;
default: printf("Quantidade invalida de parcelas!");
}
printf("%f",*vrfinal);
printf("%d",*qntparcela);
*vrparcela = *vrfinal/float(*qntparcela);
}
void mostrarValor(float *vrfinal, float *vrparcela, int *qntparcela)
{
printf("O valor final do carro e: %.2f.\nA quantidade de parcelas e: %d.\nO valor de cada parcela e %.2f", *vrfinal, *qntparcela, *vrparcela);
}
main()
{
float vrcarro, vrparcela, vrfinal;
int qntparcela;
vrcarro = valorCarro();
lerParcelas (&vrcarro, &qntparcela, &vrparcela, &vrfinal );
mostrarValor(&vrfinal, &vrparcela, &qntparcela);
getch();
}
Obrigado desde já!
Descobri o erro, era nesta parte:
printf("Digite a quantidade de parcelas, caso for compra a vista digite 1: ");
Pergunta
Alaplaia
Bom dia.
Estou com um probleminha, este meu programa (linguagem C ) compila, mas na hora de colocar a quantidade de parcelas ele gera o erro de memória, que ela não pode ser written.
Não consigo achar o lugar onde esta o erro, se alguém puder me ajudar eu agradeço.
A estrutura é essa mesmo, caso acharem melhor que eu melhore, pois os módulos estão grandes..
Obrigado desde já!
Descobri o erro, era nesta parte:
Coloquei um * na hora de salvar o valor.
Obrigado
Editado por AlaplaiaLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.