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是小数点后保留的位数