标题:初学者请教,小数和指数输出问题,谢谢
取消只看楼主
colin_zou
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-10-26
 问题点数:0 回复次数:0 
初学者请教,小数和指数输出问题,谢谢
大家好!我在学习c的课程,有道题是这样的:编写一个程序,读入一个浮点数,并分别以小数形式和指数形式打印。输出应如同下面的格式:
the input is 21.290000 or 2.129000e+001

标准答案是:

PE 3-4

/* Programming Exercise 3-4  */
#include <stdio.h>

int main(void)
{
    float num;
    printf("Enter a floating-point value: ");
    scanf("%f", &num);
    printf("fixed-point notation: %f\n", num);
    printf("exponential notation: %e\n", num);

    return 0;
}

但输出结果是:
Enter a floating-point value: 21.290000
fixed-point notation: 21.290001       为什么呢?
exponential notation: 2.129000e+001


经过我的调整我的程序是这样的:
#include <stdio.h>

int main(void)
{
    double f_i; //定义为double
    scanf("%Lf",&f_i); //接受输入数字,我输入了一个21.290000,类型要用Lf,这个是lo
    printf("the input is %Lf or %e",f_i,f_i); //用大写的L避免误认为是l  E是指数型

    return 0;
}


这样输出就是对的了,
所以不是很理解到底是我编的有问题还是。。。?double应该是%f才是,为什么用了不对,报错,一定要用%Lf
用的是code blocks 10.05 谢谢
搜索更多相关主题的帖子: 课程 学习 include return 
2011-10-26 21:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-353522-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017162 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved