第1个回答 2020-09-02
这个很容易实现,可以根据输入的宽度和小数位数来构造printf的格式串,代码如下:
#include "stdio.h"
int main()
{
float x; // 输入数字
int a; // 宽度
int b; // 小数点位数
char fmt[10]; // 输出格式字符串
printf("输入数字:");
scanf("%f", &x);
printf("输入填充空间:");
scanf("%d", &a);
printf("输入小数点位数:");
scanf("%d", &b);
sprintf(fmt, "%s%d%s%d%s", "%", a, ".", b, "f"); // 拼接输出格式字符串为 “%a.bf” 样式
printf(fmt, x); // 按 “%a.bf” 样式输出 x
return 0;
}
注:a输入0时相当于输出格式为 “%.bf”,vs2019下测试通过本回答被网友采纳