分数化小数-算法竞赛经典习题2-5:输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b<=106,c<=100。输入包含多组数据,结束标记为a=b=c=0。(C++实现)
样例输入:
1 6 4
0 0 0
样例输出:
Case 1: 0.1667
思路解析:
1.判断程序结束标记,有条件已经给出,a=b=c=0,是且的条件,同时满足才结束运行。
2.对a/b进行小数保留,这里先要变换成double类型才不会丢失数据精度,在int下a/b是整数,没有小数位了。
3.设置输出格式,setprecision为c位。
代码如下:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a,b,c,i=0;
cin >> a >> b>>c;
double t=0;
while (!(a == 0 && b == 0 && c == 0))//判断结束条件
{
t = double(a)/double(b);
cout << "Case " << ++i << ": " << fixed << setprecision(c) << t << endl; //设置输出格式
cin >> a >> b >> c;
}
return 0;
}
运行结果如下所示:
新手驾到,多指教!