c中浮点值的mod运算符。这是“显示错误”;“非法使用浮点”; #包括 #包括 void main() { 浮动n,r; printf(“\n输入一个数字”); scanf(“%d”和“&n”); r=n%10; n/=10; printf(“%d%d”,n,r); getch(); }

c中浮点值的mod运算符。这是“显示错误”;“非法使用浮点”; #包括 #包括 void main() { 浮动n,r; printf(“\n输入一个数字”); scanf(“%d”和“&n”); r=n%10; n/=10; printf(“%d%d”,n,r); getch(); },c,C,此代码在编译时显示错误。 我想知道:我们可以对浮点值执行mod操作吗?不,不能对浮点值使用% 改用fmod功能 此处引用: 或fmodf r=fmod(n,10) 要使用此功能,您需要#包括 另外,您应该执行scanf(%f,&n)以读取float #include<stdio.h> #include<conio.h> void main() { float n, r; printf("\n enter a number"); scanf("%d",&

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

不,不能对浮点值使用
%

改用
fmod
功能 此处引用:

fmodf

r=fmod(n,10)

要使用此功能,您需要
#包括

另外,您应该执行
scanf(%f,&n)
以读取
float

#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();
}
#包括
#包括
int main()
{
浮动n,r;
printf(“\n输入一个数字”);
scanf(“%f”、&n);
r=fmod(n,10.0);
//r=fmodf(n,10.0);坦斯克至丘克斯
n/=10;
printf(“%f%f”,n,r);
}

请阅读
scanf
的手册,包括
%d
格式说明符的作用,以及使用时需要的参数类型。我们可以对浮点值执行模式操作吗:否。它不应该是
mod
运算符而不是“mode”运算符。
float n,r-->
int n,r“我们可以对浮点值执行mod操作吗?”不完全正确。C具有
fmodf()
,这与欧几里德“mod运算”中的正值相同。在C
fmodf()
中,当操作数为负数时,会有一个不同于“mod”的“余数”。您还可以提到@NateEldredge所指的错误吗?@WeatherVane当然
fmodf()
对于
float
参数更有意义。@chux是这样做的,但在这种情况下,C会隐式地将10转换为10.0,但使用
fmod()
n
float
转换为
double
。然后
fmod()
计算
double
余数,然后
r=
double
余数转换为
float
fmodf()
可能比
fmod()
快,并且code避免了
float
double
double
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 );
}