Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como sou iniciante em programação e logicamente também na linguagem C++ comecei a fazer programas simples como este que fis de "Controle de Gastos", logicamente não esta totalmente terminado, quero melhora-lo e coisa e tale.
Bom, o meu programa compila sem apresentar nenhum erro e quando estou entrando com as informações de gastos como por exemplo quando chega na parte em que ele pede os gastos extras de algo que eu tenho que pagar, ao inserir estes dados e depois responder "n" dizendo que não tem mais gastos extras o programa apresenta uma menssagem em baixo dizendo "erro de segmento" e pede para apertar enter para sair.
Obs: estou compilando os meus programas no CODE::BLOCKS 8.02.
Segue o fonte abaixo:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
// Realiza um controle de gastos referente a sua renda mensal.
int main()
{
float aluguel, luz, agua, telefone, totalprestacao=0, totalextra=0, totalrenda=0, totalgastos, totalgeral;
float prestacao[100], extra[100], renda[100];
int i=0, r=0, x, n, xprestacao, xextra, xrendas; /* i, r, x, n (contadores), xprestacao, xextra, xrendas(conta a quantidade de prestação, gasto extra e renda informados pelo usuario) */
char resp1='S', resp2='S'; //Armazena a resposta de "s" para continuar e "n" para sair
// Gastos
printf("Informe os gastos mensais\n");
printf("Aluguel: ");
scanf("%f", &aluguel);
printf("Luz: ");
scanf("%f", &luz);
printf("Agua: ");
scanf("%f", &agua);
printf("Telefone: ");
scanf("%f", &telefone);
while(toupper(resp1)=='S')
{
printf("Informe uma prestacao: ");
scanf("%f", &prestacao[i]); //informe uma prestação a ser paga
i++; xprestacao++; //i (contador do vetor), xprestacao(conta a quantidade de prestações informadas pelo usuário)
printf("Deseja continuar (S-Sim, N-Nao): ");
scanf("%s", &resp1); //pergunta se deseja continuar informando mais prestações a serem pagas
}
while(toupper(resp2)=='S')
{
printf("Informe um gasto extra: ");
scanf("%f", &extra[r]); //Informe outro gasto que não seja os que já foram referidos
r++; xextra++; //r(contador do vetor extra), xextra(conta a quantidade de gastos extras informados pelo usuario)
printf("Deseja continuar (S-Sim, N-Nao): ");
scanf("%s", &resp2);
}
// Soma dos Gastos
for(x=0; x<xprestacao; x++) //xprestacao(quantidade de prestações que já foram informadas pelo usuário)
{
totalprestacao = totalprestacao+prestacao[x]; // incremento de todas as prestações que já foram informadas com seus elementos para a soma deles mesmo.
}
for(x=0; x<xextra; x++) //xextra(quantidade de gastos extras que já foram informados pelo usuário)
{
totalextra = totalextra+extra[x]; // incremento de todos os gastos extras.
}
totalgastos = totalprestacao+totalextra+aluguel+luz+agua+telefone; /*Total de Gastos */
// Rendas
printf("Informe o numero de rendas a ser declarada: ");
scanf("%d", &xrendas);
for(x=0, n=1; x<xrendas; x++, n++)
{
printf("Informe a %d renda", n);
scanf("%f", &renda[x]);
}
// Soma das Rendas
for(x=0; x<xrendas; x++)
{
totalrenda = totalrenda+renda[x];
}
// Subtração de toda a renda menos todos os gastos.
totalgeral = totalrenda-totalgastos;
printf("A sua Renda Final eh de: %.2f", totalgeral);
}Carregando comentários...