C语言根据输入n来保留n位小数
平常C语言保留小数,例如:保留3位小数 printf(“%.3f”,123.666666); 但是当面临运行过程中要求保留n位时,这种方法就不适用。
有的人就会说用保留小数处用变量代替不就好了,这种方法是不可行的!!!例如一下代码:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
printf("%.nf",123.666666);
return 0;
}
当输入3时,并不会保留3位,甚至并无结果。

此时 printf(“.*f”,(需要保留的位数),(对应小数));
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
printf("%.*f",n,123.666666);
return 0;
}
当 n 输入 3 时,成功保留3位小数

同样的需要规定数据宽度时,可以在表示数据宽度处填 *
#include<stdio.h>
int main()
{
int n;
int q;
scanf("%d%d",&n,&q);
printf("%*.*f",n,q,123.666666);
return 0;
}
10是数据宽度,4是小数点后保留的位数

本文介绍了如何在C语言中根据运行时输入的数值动态地保留小数位数。传统的`printf`格式化输出在面对变化的小数位需求时不再适用。通过使用`%.*f`格式说明符,可以解决这一问题。示例代码展示了如何根据输入的整数n来保留n位小数,以及如何结合数据宽度进行输出。
1908





