N a T a N Postado Junho 5, 2011 Denunciar Share Postado Junho 5, 2011 int i=((hora-3)%1);O compilador está acusando problema nessa linha de código...O erro é invalid operands to binary % Alguém sabe dizer o porque o compilador acusa tal erro? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jrsilvamg Postado Junho 5, 2011 Denunciar Share Postado Junho 5, 2011 int i=((hora-3)%1);O compilador está acusando problema nessa linha de código...O erro é invalid operands to binary %Alguém sabe dizer o porque o compilador acusa tal erro?NO dev aqui funcionou belezaint hora = 10; int i=((hora-3)%1); printf("%d", i); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 N a T a N Postado Junho 5, 2011 Autor Denunciar Share Postado Junho 5, 2011 Poisé cara, normalmente funciona aqui também, mas nesse caso deu erro, e foi dentro de uma função...float calcularTaxa(float hora){ float rest; float k; if(hora <= 3) return 2; else if(hora > 3 && hora <= 6){ k=(int)((hora-3)/1); rest=(hora-3)-k; if(rest==0) return (2+k); else return (2+1+k); } else{ k=(int)((hora-6)/1); rest=(hora-6)-k; if(rest==0) return (5+0.5*k); else return (5+0.5+0.5*k); } }Essa função no caso, como o % não funcionou, tive que usar outros recursos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 5, 2011 Denunciar Share Postado Junho 5, 2011 O operador % só funciona para tipos inteiros. Como hora está declarado como float, ele não pode ser usado.Pelo que entendi, o objetivo é obter o resto da divisão por 1 (isto é, a parte decimal). Nesse caso, basta pegar o valor da variável e, desse valor, subtrair sua parte inteira.float hora_menos_3=hora-3; float i=hora_menos_3-(int)hora_menos_3;Obs.:Como a variável i deve trabalhar com a parte decimal de um número, deve ser declarada como float e não como int. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 N a T a N Postado Junho 5, 2011 Autor Denunciar Share Postado Junho 5, 2011 O operador % só funciona para tipos inteiros. Como hora está declarado como float, ele não pode ser usado.Pelo que entendi, o objetivo é obter o resto da divisão por 1 (isto é, a parte decimal). Nesse caso, basta pegar o valor da variável e, desse valor, subtrair sua parte inteira.float hora_menos_3=hora-3; float i=hora_menos_3-(int)hora_menos_3;Obs.:Como a variável i deve trabalhar com a parte decimal de um número, deve ser declarada como float e não como int.Hmm, bastante interessante o seu jeito também... Obg. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Junho 5, 2011 Denunciar Share Postado Junho 5, 2011 De nada, qualquer coisa é só postar.Obs.:Como o problema foi solucionado, vou marcar o tópico como Resolvido. Mas seria interessante que postasse também a sua solução. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
N a T a N
O compilador está acusando problema nessa linha de código...
O erro é
Alguém sabe dizer o porque o compilador acusa tal erro?Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.