wgva Postado Maio 29, 2008 Denunciar Share Postado Maio 29, 2008 eai galera sou iniciante em c++,e tenho de fazer um programa q Geração a Fatura de uma conta de energia..porem um dos meus calculos não da certo!!estou usando para desenvolver o visual c++o meu codigo é esse!!!// ConsumoDeEnergia.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdlib.h>int _tmain(int argc, _TCHAR* argv[]){char cliente[50];int codigo;int anterior=0;int atual=0;double faturaAtual=0;double economia=0;double desconto=0;double faturaDesconto=0;system ("cls");printf("Digite o nome do cliente:");scanf ("%s",cliente); fflush (stdin);printf("Digite o codigo do cliente:");scanf ("%i",&codigo);printf("Digite o consumo do mes anterior do cliente:");scanf ("%i",&anterior);printf("Digite o consumo do mes atual do cliente:");scanf ("%i",&atual);faturaAtual = atual * 1.50economia = (1-(atual/anterior))*100; // NÃO ESTÁ FAZENDO O CALCULOif (economia >= 40) {desconto = faturaAtual * 0.5;}else if ((economia >= 20) && (economia < 40)) {desconto = faturaAtual * 0.3;}else if ((economia >= 10) && (economia < 20)) { desconto = faturaAtual * 0.10;}elsedesconto = faturaAtual * 0.00;faturaDesconto = faturaAtual - desconto;fflush (stdin);printf("Cliente:%s\n",cliente);printf("Codigo:%i\n",codigo);printf("Consumo Anterior:%i\n",anterior);printf("Consumo Atual:%i\n",atual);printf("Fatura Atual:%f\n",faturaAtual);fflush (stdin);printf("Economia:%f\n",economia);printf("Descontos:%f\n\n",desconto);printf("total apagar:%f\n\n",faturaDesconto);system("PAUSE");return 0;}essa e a parte q não funciona economia = (1-(atual/anterior))*100; // NÃO ESTÁ FAZENDO O CALCULOalguém pode me ajudar???obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo Utikawa da Fonseca Postado Maio 31, 2008 Denunciar Share Postado Maio 31, 2008 Como atual é um int e espera-se que atual seja menor que anterior, o resultado da divisão será sempre zero!Para corrigir faça um cast em atual para que ele seja convertido para um double:economia = (1-((double)(atual)/anterior))*100; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest elmo Postado Maio 31, 2008 Denunciar Share Postado Maio 31, 2008 coloca um ponto e virgula na expresão anterior a que está dando errado.viz uma adaptação para o dev c++#include <stdlib.h>#include <stdio.h>int main(int argc, char* argv[]){char cliente[50];int codigo;int anterior=0;int atual=0;double faturaAtual=0;double economia=0;double desconto=0;double faturaDesconto=0;system ("cls");printf("Digite o nome do cliente:");scanf ("%s",cliente); fflush (stdin);printf("Digite o codigo do cliente:");scanf ("%i",&codigo);printf("Digite o consumo do mes anterior do cliente:");scanf ("%i",&anterior);printf("Digite o consumo do mes atual do cliente:");scanf ("%i",&atual);faturaAtual = atual * 1.50;economia = (1-(atual/anterior))*100; // NÃO ESTÁ FAZENDO O CALCULOif (economia >= 40) {desconto = faturaAtual * 0.5;}else if ((economia >= 20) && (economia < 40)) {desconto = faturaAtual * 0.3;}else if ((economia >= 10) && (economia < 20)) { desconto = faturaAtual * 0.10;}elsedesconto = faturaAtual * 0.00;faturaDesconto = faturaAtual - desconto;fflush (stdin);printf("Cliente:%s\n",cliente);printf("Codigo:%i\n",codigo);printf("Consumo Anterior:%i\n",anterior);printf("Consumo Atual:%i\n",atual);printf("Fatura Atual:%f\n",faturaAtual);fflush (stdin);printf("Economia:%f\n",economia);printf("Descontos:%f\n\n",desconto);printf("total apagar:%f\n\n",faturaDesconto);system("PAUSE");return 0;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
wgva
eai galera sou iniciante em c++,e tenho de fazer um programa q Geração a Fatura de uma conta de energia..
porem um dos meus calculos não da certo!!estou usando para desenvolver o visual c++
o meu codigo é esse!!!
// ConsumoDeEnergia.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
char cliente[50];
int codigo;
int anterior=0;
int atual=0;
double faturaAtual=0;
double economia=0;
double desconto=0;
double faturaDesconto=0;
system ("cls");
printf("Digite o nome do cliente:");
scanf ("%s",cliente);
fflush (stdin);
printf("Digite o codigo do cliente:");
scanf ("%i",&codigo);
printf("Digite o consumo do mes anterior do cliente:");
scanf ("%i",&anterior);
printf("Digite o consumo do mes atual do cliente:");
scanf ("%i",&atual);
faturaAtual = atual * 1.50
economia = (1-(atual/anterior))*100; // NÃO ESTÁ FAZENDO O CALCULO
if (economia >= 40)
{
desconto = faturaAtual * 0.5;
}
else if ((economia >= 20) && (economia < 40))
{
desconto = faturaAtual * 0.3;
}
else if ((economia >= 10) && (economia < 20))
{
desconto = faturaAtual * 0.10;
}
else
desconto = faturaAtual * 0.00;
faturaDesconto = faturaAtual - desconto;
fflush (stdin);
printf("Cliente:%s\n",cliente);
printf("Codigo:%i\n",codigo);
printf("Consumo Anterior:%i\n",anterior);
printf("Consumo Atual:%i\n",atual);
printf("Fatura Atual:%f\n",faturaAtual);
fflush (stdin);
printf("Economia:%f\n",economia);
printf("Descontos:%f\n\n",desconto);
printf("total apagar:%f\n\n",faturaDesconto);
system("PAUSE");
return 0;
}
essa e a parte q não funciona economia = (1-(atual/anterior))*100; // NÃO ESTÁ FAZENDO O CALCULO
alguém pode me ajudar???
obrigado
Link para o comentário
Compartilhar em outros sites
2 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.