Ir ao conteúdo
  • Cadastre-se

Programa não executa todos os cálculos


Jonatas_182

Posts recomendados

Saudações, sou novo na programação, na verdade esse é meu segundo programa sozinho e estou tendo o seguinte problema:


 


A tarefa imposta foi realizar um programa que calcule um desconto de uma  "porcentagem X"  sobre um "salário"; após isto, calcule mais um  desconto de "porcentagem y" sobre o restante do "salário".


 


 


Aparentemente, tudo certo, porém o programa faz o cálculo do primeiro desconto e pára por ai sem dar a opção de entrar com o valor de "y" para fazer o cálculo sobre o restante do salário.


 


segue abaixo o código:


-------------------------------------------------------------------------------------------


 


#include<stdio.h>

#include<locale.h>

#include<stdlib.h>

 

 

 

main ()

 

{

setlocale(LC_ALL,"portuguese");

 

   float salb, salliq_prev,salliq_total, prev, aliq_prev, imposto, aliq_imposto; 

   char nome[50];

   

   /* salb = "salário bruto" definido pelo usuário

    prev = valor "x %" definido pelo usuário a ser descontado do salário bruto

    aliq_prev = "resultado de x"

    salliq_prev = "salário bruto" - "resultado de "x"

   

imposto = valor "y %" a ser descontado sobre "salliq_prev"

aliq_imposto = "resultado de y"

salliq_total = "salliq_prev" - "aliq_imposto                   */

 

 

    printf ("Digite o nome: ");

scanf ("%s",&nome);

 

printf("\n---------------------------------------");

   

  printf("\nDigite o valor do Salário Bruto \nutilizando somente PONTOS '.' para separar casas decimáis: \n\nR$ "); //Entrada de dados para valor para a variável do salário

scanf ("%f",&salb); /* armazena o valor da variável do salário */

 

printf("\n---------------------------------------");

 

 

printf ("\nDigite a porcentagem da Previdência a ser desconta sobre o Salário Bruto: \n\n");

scanf ("%f",&prev); /* armazena o valor da variável previdência */

printf ("%%");

 

printf("\n---------------------------------------");

 

 

aliq_prev = salb * prev / 100; /*cálculo e armazenamento em uma variável*/

printf ("\nDesconto sobre o salário é = %5.2f", aliq_prev); /* Mostra na tela o resultado */

scanf ("%f", &aliq_prev);

 

printf("\n---------------------------------------");

 

salliq_prev=salb-aliq_prev;

scanf("%f",&salliq_prev);

printf("\nSalário Decontado Previdência: = %5.2f", salliq_prev);

 

printf("\n---------------------------------------");

 

 

printf ("\n\nDigite a porcentagem a ser desconta do Auxílio Imposto Sobre o Fortuna: \n\n");

scanf ("%f",&imposto);

printf ("%%");

 

printf("\n---------------------------------------");

 

aliq_imposto = salliq_prev * imposto / 100; /*cálculo e armazenamento em uma variável*/

printf ("\nDesconto do Auxílio Imposto Sobre o Fortuna é = %5.2f", aliq_imposto); /* Mostra na tela o resultado */

scanf ("%f", &aliq_imposto);

 

printf("\n---------------------------------------");

 

salliq_total=salb-aliq_prev-aliq_imposto;

scanf("%f",&salliq_total);

printf("\nSalario Liquido: = %5.2f",salliq_total);

 

}

Link para o comentário
Compartilhar em outros sites

a respeito do scanf e verdade. Por exemplo; tem o bug da enter ( o scanf posterior tenta capturar o buffer )!

Esse bug acontece quando existe no trabalho sequência de scanf, daí e só usar fflush(stdin);
Depois de cada scanf. Experimente essa iniciativa na correção do erro presente no teu código.

 

 

Exemplo:

//Software of example - simple_code.c#include <stdio.h>//#Function Prototype//Here this prime functionint main( void ){   int num0, num1;//>Example   printf( "Entre com um numero:\n$ Into /> " );   scanf( "%d", &num0 );    fflush( stdin );   printf( "Entre novamente com outro:\n$ Into /> " );   scanf( "%d", &num1 );    fflush( stdin );   printf( "Somar: %d + %d: = %d\n", num0, num1, num0 + num1 );   printf( "Acabou!\nPrecione-> [ENTER] para sair...\r" );   getchar( );   return ( 0 );}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...