Pulse 0 Denunciar post Postado Abril 14, 2015 19) Um empresário deseja controlar o seu caixa diariamente. Para isso, deve-se elaborar um algoritmo que: a) Leia um valor que estabelece o saldo inicial do caixa; Página: 42 B) Leia as informações necessárias ao controle de caixa, representando cada uma das movimentações do caixa como: valor, tipo de movimentação (E = entrada, S = saída), forma de pagamento (C = cheque, D = dinheiro). c) Determine e escreva: c.1) O saldo inicial informado; c.2) A soma dos valores de entrada; c.3) A soma dos valores de saída; c.4) A soma dos valores de entrada com cheques; c.5) O saldo atual, informando se negativo ou positivo. * Utilize como flag o 0 (zero) para o valor digitado. #include <stdio.h> int main () { float valor, saldoinicial, somaentrada=0, somasaida=0, somaentradacheque=0, saldoatual; char movimentacao, pagamento; printf("Digite o saldo inicial"); scanf("%f", &saldoinicial); saldoatual = saldoinicial; do { do { printf("Digite o valor da operacao"); scanf("%f", &valor); }while(valor<0); if (valor>0) { printf("Digite o tipo de movimentacao"); scanf("%c%*c", &movimentacao); printf("Digite a forma de pagamento"); scanf("%c%*c", &pagamento); if(movimentacao == 'e') { saldoatual += valor; somaentrada += valor; if(pagamento == 'c') { somaentradacheque+=valor; } } else if (movimentacao == 's') { somasaida += valor; saldoatual -= valor; } } }while(valor!=0); printf("Saldo inicial: %f. \n Saldo atual: %f. \n Soma valores entrada: %f.\nSoma valores saida: %f.\nSoma entrada com cheque: %f.", saldoinicial, saldoatual, somaentrada, somasaida, somaentradacheque ); return 0; } O código não tá entrando nos ifs... já vi novamente várias vezes e não acho erros. Ao final da execução sempre mostra o saldo inicial e o saldo atual com o valor que foi atribuido a ele primeiramente (saldo inicial) e o resto das informações também continua com o valor atribuido primeiramente (0) Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Abril 14, 2015 Não está entrando porque o valor de ambas as variáveis é \n: Breakpoint 2, main () at caixa.c:31 31 if(movimentacao == 'e') 1: valor = 1 (gdb) display movimentacao 2: movimentacao = 10 '\n' (gdb) display pagamento 3: pagamento = 10 '\n #include <stdio.h> #include <ctype.h> void ler_saldo_inicial(float * saldo_inicial) { printf("Digite o saldo inicial: "); scanf("%f", saldo_inicial); } void ler_tipo_operacao(char * tipo_op) { do { printf("Digite o tipo de movimentacao: "); scanf("%c", tipo_op); (*tipo_op) = tolower((*tipo_op)); if ((*tipo_op) != 'e' && (*tipo_op) != 's') { printf("Operação inválida. Informe s ou e.\n"); } } while ((*tipo_op) != 'e' && (*tipo_op) != 's'); } void ler_valor_operacao(float * valor_op) { printf("Informe o valor da operação: "); scanf("%f%*c", valor_op); } void ler_forma_pagamento(char * forma_pagto) { do { printf("Digite a forma de pagamento: "); scanf("%*c%c", forma_pagto); (*forma_pagto) = tolower((*forma_pagto)); if ((*forma_pagto) != 'c' && (*forma_pagto) != 'd') { printf("Forma de pagamento inválida. Informe c ou d.\n"); } } while ((*forma_pagto) != 'c' && (*forma_pagto) != 'd'); } int main (void) { float saldo_inicial, valor_op, saldo_atual; char tipo_op, forma_pagto; float soma_entrada = 0.0F, soma_saida = 0.0F; float soma_entrada_cheques = 0.0F; ler_saldo_inicial(&saldo_inicial); saldo_atual = saldo_inicial; while(1) { ler_valor_operacao(&valor_op); if (!valor_op) break; ler_tipo_operacao(&tipo_op); if (tipo_op == 'e') { soma_entrada+=valor_op; ler_forma_pagamento(&forma_pagto); if (forma_pagto == 'c') { soma_entrada_cheques+=valor_op; } } else if (tipo_op == 's') { soma_saida+=valor_op; valor_op=(-1)*valor_op; } saldo_atual+=valor_op; } printf("Saldo inicial informado: %.2f\n", saldo_inicial); printf("Total de valores de entrada: %.2f\n", soma_entrada); printf("Total de valores de entrada via cheques: %.2f\n", soma_entrada_cheques); printf("Total de valores de saída: %.2f\n", soma_saida); printf("Saldo atual: %+.2f\n", saldo_atual); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites