标签:转换 标准 对齐 通过 std 精确 要求 包含 print
输入正整数 a b c ,输出 a / b 的小数形式,精确到小数点后 c 位。a ,b <=1e6 , c <= 100 。输入包含多组数据,结束标记为 a = b = c = 0 。
样例输入
1 6 4
0 0 0
样例输出
0.1667
使用转换说明符 *
我们都知道可以通过%m.n来控制数据的输出范围,这里要求m和n都是字面量
类似地,标准库也提供了通过变量来控制宽度的方法,这时我们就要使用%*.*。当使用*的时候要求通过一个int类型的参数来指定宽度,如果参数是正数则输出右对齐,如果参数是负数则输出内容左对齐,相当于添加了一个-标签。例子如下:
int w1, w2;
float a, b;
scanf("%f%f", &a, &b);
scanf("%d%d", &w1, &w2);
printf("%*.*f", w1, w2, a / b);//此时a/b的显示宽度由w1和w2来控制
代码如下
#include<iostream>
using namespace std;
int main()
{
int a; //被除数 a
int b; // 除数 b
int c; // 精度 c
double num = 0; //结果
while (cin>>a>>b>>c)
{
if (a == 0 && b == 0 && c == 0)
break;
num = (double) a / b ; // 存放
printf("%lf\n",num); //检验
printf("%.*lf\n",c,num); //输出 , 注意用 *
}
return 0;
}
标签:转换 标准 对齐 通过 std 精确 要求 包含 print
原文地址:https://www.cnblogs.com/go-alltheway/p/13339105.html