C语言的 %.*f 是什么意思

如题所述

就是指格式输出一个浮点数,但是去掉小数点后面的数%.0f的0代表小数点后面几位,%.2f就是小数点后面2位追问

printf("%d/%d = %.*f\n",m,n,k,s);这个程序怎么会有4个变量输出?,难道*代表一个变量嘛

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-31
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a=1,b=2,c=3;
    printf("%d+%d=%*d",a,b,10,c);
/*
 *  format 标签属性是 %[flags][width][.precision][length]specifier
 *  其中,不确定的[width]或[.precision]可以将其中的数值用“*”代替。
 *  而该值将被认为未指定,但是会作为附加整数值参数放置于要被格式化的参数之前。
 */
    return 0;
}
//输出是:1+2=         3

虽然这个问题已经问了很久了,但是我觉得我还是要回答一下。不然后续看到的人会受到误导。

第2个回答  2016-05-24
print f("%d/%d = %.*f\n",m,n,k,s) 第一个输出 %d/%d = %.*f\m 第二个%d/%d = %.*f\n 第三个%d/%d = %.*f\k 第四个%d/%d = %.*f\s
第3个回答  2020-01-13
第4个回答  2018-03-21
printf("%d/%d = %.*f\n",m,n,k,s);

输出m/n=s,其中s是一个k位小数的东东

例如

int m=10,n=3,k=5;
double s=m/n;
printf("%d/%d = %.*f\n",m,n,k,s);

输出

10/3=3.33333

(3.后面5位小数)