Ir para conteúdo
Fórum Script Brasil
  • 0

memória não pode ser "written" (RESOLVIDO)


Alaplaia

Pergunta

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..

#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: ");

scanf("%d",*qntparcela);

Coloquei um * na hora de salvar o valor.

Obrigado

Editado por Alaplaia
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...