Problem Description
bLue 最近接了个重活,需要帮助小学生手算大量的除法算术题,这可把他累坏了。
但是,机智的 bLue 一想,写个 “printf("%f", (double)a/b);” 不就完事了嘛。可是他最近忙得都没空开电脑啦,你能帮他写一下吗?
Input
输入数据有多组(数据组数不超过 20),到 EOF 结束。
每组输入两个整数 a, b (1 < = a, b < = 2^16) 且保证运算结果一定是有限小数。a, b 同时为 0 时输入结束。
Output
输出 a/b 的运算结果,bLue 想要的格式参见示例。
Example Input
1 2 2 4 1 8 8 4 0 0
Example Output
0.5 0.5 0.125 2
源代码
#include<stdio.h>
void gewei(int a,int b)
{
int xiaoshu[22],i,n=1;
if(a%b==0)printf("%d",a/b);
else
{
printf("%d.",a/b);
a=(a%b)*10;
while(a!=0)
{
xiaoshu[n]=a/b;
a=(a%b)*10;
n++;
}
for(i=1;i<=n-1;i++)
{
printf("%d",xiaoshu[i]);
}
}
}
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)&&(a!=0||b!=0))
{
gewei(a,b);
printf("\n");
}
return 0;
}
对了还有个黑科技可以试试,就是%g,他会保留小数到第一个无意义的0为止,不过这个题用好像不对= =
#include<stdio.h>
int main()
{
double a,b,c;
while(scanf("%lf%lf",&a,&b)&&(b!=0||a!=0))
{
c=a/b;
printf("%g\n",c);
}
return 0;
}