例如现在有个double数组a[4]={12.1,7.214,888.88,0.24154}
如果只是用:
for(i=0;i<4;i++)
printf("%3.5lf-",a[i]);
那么输出的结果为"12.10000-7.21400-888.88000-0.24154"
不难看出第一个长度为8,第二个长度为7,第三个9,第四个7
但我想它们输出时长度都为9,也就我希望是这样的结果“ 12.10000- 7.21400-888.88000- 0.24154”
请问可以做到吗,该怎么写输出语句
可以先换成字符串,然后再格式化输出
double a[4] = { 12.1, 7.214, 888.88, 0.24154 };
for (int i = 0; i < 4; i++)
{
char data[100] = { 0 };
sprintf_s(data, _countof(data), "%3.5f", a[i]);
printf("%8s-", data);
}
是你描述错了吗,你希望的结果和你实际输出的不是一样吗
printf("%03.5lf-",a[i])可以补齐0,但没办法补齐空格
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html