永发信息网

关于C语言输出的疑问?

答案:2  悬赏:80  手机版
解决时间 2021-06-02 22:57
  • 提问者网友:骨子里的高雅
  • 2021-06-02 07:42

#include<stdio.h>
void main()
{
char c;
int a=1234;
float f=3.141592653589;
double x=0.12345678987654321;
printf("a=%d\n",a);
printf("a=%6d\n",a);
printf("f=%6.8f\n",f);
printf("x=%lf\n",x);
printf("x=%18.16lf\n",x);

}

疑问1:其中参数8表示小数点后有8位小数,6的含义是什么?

疑问2:此输出结果为x=0.123457,f型有效数字为7位,lf怎么还是7啊?不应该16位呢吗?

疑问3:同疑问1,18表示什么意思?

向回答的老师们致敬!

最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-06-02 09:12

1:6表示占用了6个空。


2:因为定义了double类型,如果是lf的话要定义long double


3:和1一样

全部回答
  • 1楼网友:荒野風
  • 2021-06-02 10:30

疑问1:6表示的是总数据的总长度.当点号后面的数大于前面的数的时候.将自动突破长度限制.所以感觉上没有用.如果修改成printf("f=%10.2f\n",f); 就有效果了.您可以try一下.

疑问2:不管是float还是double默认输出的都是小数点后6位.您所说的16位.指的是数据的精确度.这是包括整数部分的.您可以这样修改:double x=123456.12345678987654321;

然后再输出.这样您就会发现不止7位了..

疑问3:同疑问1

另外.对您认真学习的态度表示赞赏..嘿嘿..

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯