C语言中 输出的两个问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:12:52
1)下面是一源文件 最后一个 printf函数中 为什么 是f 而不可以是lf ?

#include<stdio.h>
#include<stdlib.h>

int main()
{
int denominator,flag;
double item,pi;

flag=1;
denominator=1;
item=1.0;
pi=0;

while(fabs(item)>=0.00000001){
item=flag*1.0/denominator;
pi=pi+item;
flag=-flag;
denominator=denominator+2;
}
pi=pi*4;
printf("pi=%.7f \n",pi);

system("pause");
return 0;
}

2)输出函数中 printf("%6.2lf",a)中的6是什么意思?可以稍具体说明一下吗?
第一个问题中 如果用lf 是错的...无法输出...为什么? pi本身就是double 类型的啊...

printf函数中 为什么 是f 而不可以是lf.
double pi;
应当用lf
用f,则转换为(float) pi, 再输出。

printf("%6.2lf",a)中的6是 输出数占6位地盘,包括2位小数,1位小数点,整数部分,如果是负数,还包括符号,共6位地盘。

printf("pi=%.7f \n",pi);
小数点后保留7位小数

这种问题没有必要知道
完全就是个函数的参数变量么,毫无技术含量

%lf是用来输出双精度型的,%f是用来输出单精度浮点型
printf("%m.nlf",a);//表示输出的浮点型数据占m个位置,如果数据实际长度大于m,则按实际长度输出,如果m大于数据实际长度则在数据左边补空格占够位置,n为输出的小数数位,默认为6位

1.这是因为
对于printf函数来说,用 f 既可以表示float类型也可以表示 double 类型
但是如果是 scanf 函数 , double类型的输入 就必须要用 lf

2.这里6表示字段宽度的最小值,如果该字段不能容纳要输出的数或者字符串,系统就会使用更宽的字段