Olá,
Gostaria de saber se posso usar as funções floor e ceil (da math.h) no algoritmo3? Acredito que sem usá-las tem de se fazer um tratamento um pouco chato p/ os números ímpares...
Obrigado,
André
Nada específico contra foor e ceil ou outras funções da <math.h>, mas todas as funções dessa biblioteca são para números reais (doubles). E no EP2 não deve aparecer nenhuma variável float ou double...
Para partir um número inteiro em duas "metades" inteiras quase iguais, use as operações / e %.
Para partir um número inteiro em duas "metades" inteiras quase iguais, use as operações / e %.
O que fiz foi usar floor e ceil na forma floor(m/2.) e ceil(m/2.), onde m é um int. Assim ele considera (m/2.) como float/double, ainda que m seja int.
Posso fazer isso, ou é melhor usar / e % mesmo?
Posso fazer isso, ou é melhor usar / e % mesmo?
Nesse caso até pode, mas é deselegante. É melhor usar / e %.
Em geral é não é uma boa idéia usar aritmética real (floats ou doubles) quando se pode usar apenas aritmética inteira. O uso de números reais em ponto flutuante no lugar de números inteiros é considerado uma má prática de programação, por duas razões:
Em geral é não é uma boa idéia usar aritmética real (floats ou doubles) quando se pode usar apenas aritmética inteira. O uso de números reais em ponto flutuante no lugar de números inteiros é considerado uma má prática de programação, por duas razões:
- As operações aritméticas com números inteiros são mais rápidas que as operações aritméticas com números reais em ponto flutuante.
- A aritmética inteira é exata, a aritmética em ponto flutuante não é.