Ola pessoal, primeiro obrigado a quem responder.
Estou com duvidas neste exercicio e não consigo chegar a resposta.
O Exercicio é o seguinte:
Escreva a função float_with_int_cmp, que compara o valor da parte inteira de fvalue com o valor inteiro ivalue. A função devolve um valor positivo se a parte inteira de fvalue for maior que ivalue, um valor negativo se a parte inteira de fvalue for menor que ivalue ou zero se forem iguais. Na implementação da função só podem ser utilizadas operações aritméticas e lógicas sobre inteiros. Qualquer operação de vírgula flutuante invalida o exercício.
int float_with_int_cmp(float fvalue, int ivalue);
OBS: eu nao estou a conseguir percerber como funciona o Float e as suas mantissas.
O codigo seguinte funciona mas não posso fazer assim o exercicio, ou seja não posso fazer Cast nenhum:
#include <stdio.h>
int float_with_int_cmp (float fvalue, int ivalue);
int main (){
printf("%d\n", float_with_int_cmp(2.5, 1));
return 0;
}
int float_with_int_cmp (float fvalue, int ivalue){
if((int)fvalue > ivalue)
return 1;
else if((int)fvalue <ivalue)
return -1;
return 0;
}
Tenho que utilizar os conceitos das imagens mas não entendo.
Obrigado desde já :)