Wangzzzx_
2020-03-14 09:58
采纳率: 66.7%
浏览 589

c语言程序设计中的问题

已有定义 float d1=3.5,d2=-3.5;执行以下语句后的输出结果 是( )。
printf("*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n",d1,d1,d1);
printf("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n",d2,d2,d2);

参考答案:*d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=□3.500e+00*
d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00□

不太能理解答案 希望可以帮忙给我解释一下

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 水枂 2020-03-14 10:38
    已采纳

    参考答案的d3和d5是有问题的
    科学计数法应该学过吧,printf的格式符%e就是以科学计数打印的
    d1=3.5是浮点数:
    用%e打印的话是3.500000e+00
    用%.4e就是保留小数点后4位即3.5000e+00
    用10.4%e即小数点前面保留十位,后面保留4位就是3.5000e+00
    d2=-3.5是浮点数
    除了正负号的区别外,类比上面的

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • ?Hb 2020-03-14 10:18

    已有定义 float d1=3.5,d2=-3.5;执行以下语句后的输出结果 是( )。
    printf("*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\n",d1,d1,d1);
    printf("*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n",d2,d2,d2);
    参考答案:*d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=□3.500e+00*
    d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00□
    不太能理解答案 希望可以帮忙给我解释一下

    评论
    解决 无用
    打赏 举报
  • weixin_45066451 2020-03-14 10:52

    %m.ne 指定输出的数值共占m位,其中有n位小数。若数值长度小于m,则左端补空格。若数值长度大于m,则按实际数值输出,小数位保留n位。
    -表示左对齐,所以后面补空格

    评论
    解决 无用
    打赏 举报
  • tianya66 2020-03-14 11:17

    e+00表示乘以10的00次方,这是用来计数的。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题