Ir ao conteúdo

Posts recomendados

Postado
#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
Postado
1 hora atrás, Midori disse:

@LendaNoLinux O 13º é calculado com base na quantidade de meses que você deve multiplicar por 1/12 do salário mensal. Tem o enunciado? Lá pede para entrar com os dias em vez dos meses?

Não tenho o enunciado,fiz porque quis apenas.

  • Membro VIP
Postado

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.

 

Postado

🙂 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...
Postado
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?

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

Postado
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?

Postado
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);



}

 

Postado

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
  • Haha 1
  • 8 meses depois...
Postado
Em 17/08/2023 às 16:17, PensadorNato1987 disse:

Está certo essa calculadora em C?

 

A expressão estava sintaticamente correta; quero dizer, apesar de sintaticamente correta para a maioria dos compiladores, esta expressão em c talvez produza resultados errados, falhos ou alertas quando submetida em outros compiladores, e depois há, hipoteticamente, usuários que a utilizem erradamente, por exemplo, entrar com letra num campo númerico.

 

c'11 - gcc'11.4


#include <stdio.h>

typedef float  NUMERO;

int main () {
  NUMERO 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);
}

 

Prompt

Dependendo do exercício, interessa ou não!

        Digitar e entrar com palavras ao invés de número, num campo numérico (salario) e logicamente, observar o programa falhar até o resultado e pensar nisso.

 

 

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