c语言小数点和填充空格字符?

除了%.6f这样表示保留几位小数点
如果想要这样做代码该怎么写
运行程序后
输入数字:
输入保留小数点后几位:
这样子去实现保留小数点,该怎么写?

第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下测试通过本回答被网友采纳
第2个回答  2020-09-02
int main(void)
{
float a;
int b;
scanf ("%f %d",&a,&b);
printf("%.*f", b, a); //用*号就行了 变量b就是位数
}追问

谢谢

我想知道 要是空格符和小数点符同时出现该怎么办

就是
输入数字
输入填充空间
输入小数点

这种应该这么办?

追答

不是很理解你的意图、、

追问

运行程序后

是这种感觉

就是既想有数字前面的填充空间的同时 又能有小数点

追答

int main(void)
{
int a;
scanf("%d",&a);
printf("%4d\n",a);
}
输入:123

输出: 123(123前面有一个空格)

是这个意思吗?

本回答被提问者采纳