#include
int main(void)
{
double a, b, r;
int k = 0;
scanf("%g %g", &a, &b);
for (r = a - k * b; r >= 0 && r < b; k++)
printf("%g\n", r);
return 0;
}
Openjudge-NOI上的题目,计算两浮点数的余数,虽然有简单的解题方法,但我还想知道以上代码哪里出错?(刚接触编程不久,望指点!)以下是题目描述:
计算两个双精度浮点数a和b的相除的余数,a和b都是正数的。这里余数(r)的定义是:a = k * b + r,其中 k是整数, 0 <= r < b。
输入
输入仅一行,包括两个双精度浮点数a和b。
输出
输出也仅一行,a÷b的余数
这么改下,供参考:
#include <stdio.h>
int main(void)
{
double a, b, r;
int k = 0;
scanf("%lf %lf", &a, &b); //修改
for (r = a - k * b; r >= 0 && r > b; k++, r = a - k * b); //修改
printf("%g\n", r);
return 0;
}
注意输出只有一行哦,题主的明显是多行了