Seguinte este código (link) compila e executa sem problemas, porém ele não faz o calculo dos ifs, nenhum deles, ja modifiquei o código de C++ para C e nada de resultados… Ao compilar ele não gera erros e ao final da execução retorna 0, ou seja, sem erros também… Alguém tem idéia do que pode ser?
Não cara, esse return 0 é retorno pro sistema operacional, significa que se retorar 0 ele chegou ao final do código, ou seja, sem erros, porque quando o C encontra um erro ele para de executar ou compilar dependendo do erro e da um retorno maluco…
Oi, Thais. Acho que resolvi o seu problema.
O link com o novo código é esse: resposta. Você notará que o problema é resolvido com uma modificação muito sutil. Após o dez, quinze e vinte e antes do operador de divisão adicionei um único ponto. Também poderia adicionar após o cem. Ademais, esse ponto pode vir acompanhado de um 0, já que nada mais é do que o separador decimal (seria a vírgula segundo nosso padrão).
Você observará, também, que eu modifiquei uma parte do seu código no que se refere às condições. Na prática não há nenhuma alteração perceptível, contudo, creio que o código tenha ficado mais conciso.
No que se refere a sua dúvida, não tenho mais nada a acrescentar.
Percebi que você utilizou a função setbuf. Compilei e executei o código sem ela e não constatei nenhuma diferença. Você poderia me explicar o conceito por trás dessa função?
Quando se faz uma divisão de números inteiros, o resultado sera um numero inteiro, mas nos queremos pegar o 0.1, e nao somente o “0” então precisamos fazer o chamado cast, que é transformar o tipo de um numero em outro.
((float)10/100)
@JoaoGiet o setbuf geralmente é usado pra limpar o buffer do teclado (“stdin, null” torna nulo o buffer da entrada padrão), isso é necessário nessa linguagem por que depois que você envia um valor o teclado fica com o"enter" utilizado pra submeter o valor em seu buffer. Assim a proxima requisiçao de valor pode receber esse enter vazio e pular essa entrada de valor do usuário. Geralmente da mais problemas quando se tem entradas de valores seguidas ou principalmente dentro de uma estrutura de repeticoes.