Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
#include <stdio.h>
#include <stdlib.h>
int divisivel(float, float);
int main ()
{
float num1, num2;
int div;
puts("Digite dois numeros");
scanf("%f", &num1);
do
{
scanf("%f", &num2);
}while(num2 == 0);
div = divisivel(num1, num2);
if(div == 1)
{
puts("Sao divisiveis");
}
else
{
puts("Nao sao divisiveis");
}
}
int divisivel(float n1, float n2)
{
if(n1%n2==0)
{
return 1;
}
else
{
return 0;
}
}
>
divisivel.c:33:10: error: invalid operands to binary % (have ‘float’ and ‘float’)
if(n1%n2==0)
O operador % só está definido para inteiros.
#include <stdio.h>
#include <math.h>
int divisivel(float a, float b) {
int main (void) {
Da documentação do fmodf:
>
If the correct value would cause underflow, and is not representable, a range error may occur, and either 0.0 (if supported), or an implementation-defined value shall be returned.
Ainda: comparações com ponto flutuante não são feitas com ==.