C语言初级问题求解=。= 为啥我的这段程序用int %d可以算 但是用float %f却运行不了呢?

#include<stdio.h>
main()
{
float a,b,c,d,e,f,g;
scanf("%f%f",&a,&b);
c=a+b;
d=a-b;
e=a*b;
f=a/b;
g=a%b;
printf("c=%f\n",c);
printf("d=%f\n",d);
primtf("e=%f\n",e);
printf("f=%f\n",f);
printf("g=%f\n",g);
getch()
}

第1个回答  2011-11-07
你的程序有4个错误
1.最后一行分号掉了
2.最后一行没有定义函数类型 是int
3.倒数第4行是printf 不是m
4.就是你问的问题 因为浮点型是不可以用%除的 取余数本来就是整数范围的 所以你把那些数定义为整数就可以了
第2个回答  2011-11-07
相对浮点数求模还是用函数 fmod() 吧, 原型为 double fmode(double x,double y) ,功能是返回浮点数x/浮点数y的余数,计算过程为n=x÷y,fmode(x,y)=x-n*y;结果取偏向0的整数。
第3个回答  2011-11-07
英文报错肯定是 %d cannot use to float.must be intergret.之类的错误
楼上很多正解,取余符号两边都必须是整形数据
第4个回答  2011-11-07
%求余运算,两边的数据类型必须是整型的
第5个回答  2011-11-07
g=a%b;

就是这里,你要对float取模么?