Ir ao conteúdo
  • Cadastre-se

C Calculadora de decimo terceiro salario está certa?


Posts recomendados

#include <stdio.h>

int main(){

float SalarioMensal,Dias,resultado;

printf("Digite o salario mensal:\n");
scanf("%f",&SalarioMensal);
printf("Digite a quantidade de dias:\n");
scanf("%f",&Dias);
resultado=SalarioMensal/365*Dias;
printf("O seu decimo é :R$ %.2f\n",resultado);



}

Está certo essa calculadora em C?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

O cálculo do 13º é feito com base na quantia de meses trabalhados.

Em caso de salários com variações (comissões e bonificações) se faz a média dos meses trabalhados, divide por 12 e multiplica pela quantia de meses trabalhados. Caso haja reajuste de salário, a diferença é paga na segunda parcela do 13º salário.

 

Agora a parte da programação, não entendo sobre.

 

Link para o comentário
Compartilhar em outros sites

🙂 Vendo apenas o lado C do código

 

  • se main() não vai usar os parâmetros prefira sempre void na lista de argumentos
  • leia o manual: scanf retorna um int. TESTE. SEMPRE. É ingênuo seguir se não leu nada
  • scanf não vai consumir a linha toda. scanf retorna assim que os especificadores forem satisfeitos. Especificadores são aquelas coisas que começam por % e não tem dois %... 
    • isso quer dizer que precisa terminar de ler a linha antes de continuar
    • scanf foi escrita para o Unix e para outro propósito: consumir dados tabulares. Tabelas, arquivos tipo csv. E é muito boa nisso. Não foi escrita para ler do teclado, Evite. Prefira o simples e use fgets
  • Não mude de linha ao ler um valor. O usuário não espera isso. Espera que o cursor fique parado logo depois da pergunta...
  • a menos que a função retorne void use um comando return explícito...
Link para o comentário
Compartilhar em outros sites

41 minutos atrás, arfneto disse:

🙂 Vendo apenas o lado C do código

 

  • se main() não vai usar os parâmetros prefira sempre void na lista de argumentos
  • leia o manual: scanf retorna um int. TESTE. SEMPRE. É ingênuo seguir se não leu nada
  • scanf não vai consumir a linha toda. scanf retorna assim que os especificadores forem satisfeitos. Especificadores são aquelas coisas que começam por % e não tem dois %... 
    • isso quer dizer que precisa terminar de ler a linha antes de continuar
    • scanf foi escrita para o Unix e para outro propósito: consumir dados tabulares. Tabelas, arquivos tipo csv. E é muito boa nisso. Não foi escrita para ler do teclado, Evite. Prefira o simples e use fgets
  • Não mude de linha ao ler um valor. O usuário não espera isso. Espera que o cursor fique parado logo depois da pergunta...
  • a menos que a função retorne void use um comando return explícito...

Não entendi,pode passar o código do programa,já corrigido? Tenho dificuldade para entender e dificuldade de aprendizado por causa da síndrome de noonan,e não entendi nada o que tu disse,quer dizer que o meu código está errado?

Link para o comentário
Compartilhar em outros sites

2 horas atrás, LendaNoLinux disse:

Não entendi,pode passar o código do programa,já corrigido? Tenho dificuldade para entender e dificuldade de aprendizado por causa da síndrome de noonan,e não entendi nada o que tu disse,quer dizer que o meu código está errado?

 

Tem que ver ponto a ponto. Não entendeu nenhum? Poderia perguntar algo mais objetivo?

 

Por exemplo:

3 horas atrás, arfneto disse:

Não mude de linha ao ler um valor. O usuário não espera isso. Espera que o cursor fique parado logo depois da pergunta...

 

Isso quer dizer que em geral é preferível

 

    Digite o salario mensal: X

 

E não 

 

    Digite o salario mensal:
X

 

Onde X é a posição onde vai estar o cursor pro cara digitar o salário. É chato quanto muda de linha. Num formulário a pergunta está em geral na mesma linha em que o cara escreve.

Link para o comentário
Compartilhar em outros sites

28 minutos atrás, arfneto disse:

 

Tem que ver ponto a ponto. Não entendeu nenhum? Poderia perguntar algo mais objetivo?

 

Por exemplo:

 

Isso quer dizer que em geral é preferível

 

    Digite o salario mensal: X

 

E não 

 

    Digite o salario mensal:
X

 

Onde X é a posição onde vai estar o cursor pro cara digitar o salário. É chato quanto muda de linha. Num formulário a pergunta está em geral na mesma linha em que o cara escreve.

Então não é para pular linha com o comando \n?

Link para o comentário
Compartilhar em outros sites

17 minutos atrás, LendaNoLinux disse:

Ok.Pode passar para mim os dois exemplos?

Já vi os dois exemplos,era para ficar sem o \n de pular linha,era para ficar assim o programa:

#include <stdio.h>

int main(){

float SalarioMensal,meses,resultado;

printf("Digite o salario mensal:");
scanf("%f",&SalarioMensal);
printf("Digite a quantidade de meses trabalhados:");
scanf("%f",&meses);
resultado = SalarioMensal/12 * meses;
printf("O seu decimo é :R$ %.2f",resultado);



}

 

Link para o comentário
Compartilhar em outros sites

image.png.d67f16af99054a58bebc53feaa786736.pngJá estão no texto. Como eu disse, X marca a posição do cursor

Entendeu a diferença? Rodou das duas maneiras? 

 

Vá arrumando o resto.

 

mais uma nota: seus programas nem sempre vão ser assim pequenos: se acostume a declarar uma variável por linha e inicializar todas as variáveis. 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!