第1个回答 推荐于2016-12-02
按常规的话两个非INT型数据进行求余数,运行时必会报错,所以需要进行强制转换!
main()
{
float a,b;
int c;
scanf("%f%f",&a,&b);
c=(int)a%(int)b;
printf("%d",c);
}
如果你最后需要以小数输出的话可以这样写
main()
{
float a,b,c;
scanf("%f%f",&a,&b);
c=(int)a%(int)b;
printf("%f",c);
}本回答被提问者采纳
第2个回答 2016-04-23
如果你单纯只是想得到余数,可以用c = a-((int)(a / b) * b);
其中(int)(a / b)是对a / b进行除法,并强制类型转换加(int)进行趋零截尾;
举个例子:
#include <stdio.h>
#define CM_PER_IN 2.54 // 1英寸 = 2.54厘米
#define IN_PER_FEET 12 // 1英尺 = 12 英寸
int main(void)
{
float cm, inch, left; // 其中left即为所求float余数
int feet;
printf("Enter a height in centimeters: ");
scanf("%f", &cm);
while (cm > 0)
{
inch = cm / CM_PER_IN;
feet = inch / IN_PER_FEET;
left = inch - (feet * IN_PER_FEET);
printf("%.1f cm = %d feet, %.1f inches\n",
cm, feet, left);
printf("Enter a height in centimeters (,=0 to quit): ");
scanf("%f", &cm);
}
printf("bye\n");
return 0;
}
第3个回答 2007-10-25
#define PRECISION 0.000001
//计算a%b
double calc(double a, double b)
{
if(a<b||fabs(a-b)<PRECISION)
return a;
return calc(a-b, b);
}
void main()
{
double a=56.78, b=3.51;
printf("a%%b=%f", calc(a, b));
}
第4个回答 2007-10-25
提供一个思路
如果不能除
那就把这两个数都乘以一定的倍数把他们化为整数在求余数