Esta função recebe um ponto flutuante
e o arredonda a partir da seguinte regra:
- se a parte fracionária de
for menor que 0.25 , arredonde a parte fracionário para zero e retorne o número arredondado. Ex.:
- se a parte fracionária de
for maior ou igual a 0.25 e menor que 0.75 , arredonde a parte fracionária para 0.5 e retorne o número arredondado. Ex.:
- se a parte fracionária de
for maior ou igual a 0.75 , arredonde para o próximo inteiro. Ex.:
float arredonda(float n) {
// Primeira funcao, aqui
}
// Primeira funcao, aqui
}
Passo 1
O enunciado pede uma função em C que receba um valor de ponto flutuante
e o arredonde segundo três faixas da parte fracionária:
- se
, retorna só a parte inteira; - se
, retorna a parte inteira mais ; - se
, retorna o próximo inteiro.
Vamos usar funções da biblioteca <math.h> para extrair a parte inteira viae calcular a parte fracionária.
Passo 2
Calcular a parte inteira e a parte fracionária de
:
- inteiro =
usando . - frac =
inteiro.
Passo 3
Comparar frac com os limites 0,25 e 0,75 usando uma cadeia de
if
/else if
/else
:- se frac < 0,25 retorna inteiro;
- senão se frac < 0,75 retorna inteiro
; - caso contrário retorna inteiro
.
Passo 4
Garantir que a função retorne sempre um float e inclua <math.h> para usar
.
Resposta
#include <math.h>
float arredonda(float n) {
float inteiro = floorf(n);
float frac = n - inteiro;
if (frac < 0.25f) {
return inteiro;
} else if (frac < 0.75f) {
return inteiro \(+0.5\)f;
} else {
return inteiro \(+1.0\)f;
}
}