关于c中浮点值的mod运算符.这显示错误"非法使用浮点"

Adi*_*han -2 c

#include<stdio.h>
#include<conio.h>
void main()
{
  float n, r;
  printf("\n enter a number");
  scanf("%d",&n);
  r=n%10;
  n/=10;
  printf("%d %d",n, r );
  getch();
}
Run Code Online (Sandbox Code Playgroud)

此代码在编译时显示错误.我想知道:我们可以对浮点值执行mod操作吗?

Jam*_*Maa 5

不,你不能%在浮动上使用

使用fmod功能改为参考此处:http://www.cplusplus.com/reference/cmath/fmod/

或者fmodf http://en.cppreference.com/w/c/numeric/math/fmod

r = fmod (n, 10)

您需要#include <math.h> 使用此功能

另外,你应该scanf(%f, &n)阅读float

#include<stdio.h>
#include<math.h>

int main()
{
  float n, r;
  printf("\n enter a number");
  scanf("%f", &n);
  r=fmod(n,10.0);
  //r = fmodf(n, 10.0); thansk to chux
  n /= 10;
  printf("%f %f", n, r );
}
Run Code Online (Sandbox Code Playgroud)