| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 903 人关注过本帖
标题:【已解决】【新手提问】关于c primer plus书中一道例题的疑问
只看楼主 加入收藏
infernos
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-11-2
收藏
 问题点数:0 回复次数:2 
【已解决】【新手提问】关于c primer plus书中一道例题的疑问
本人新手,才看到第六章,大神勿笑。
程序清单6.5 cmpflt.c程序 代码如下:
程序代码:
#include <stdio.h>
#include <math.h>

int main (void)
{
    const double ANSWER = 3.14159;
    double response;
    
    printf ("What is the value of pi?\n");
    
    scanf ("lf", &response);
    
    while (fabs (response - ANSWER) > 0.0001)
    {
        printf ("Try again!\n");
        
        scanf ("%lf", &response);
    }
    printf ("Clouse enough!\n");
    
    return 0;

 } 


这道题应该是要比较用户输入的值跟ANSWER的值,
条件语句fabs(response - ANSWER)>0.0001为真则运行花括号里的Try again那条printf语句
问题:我在电脑上照抄然后运行编译显示的结果跟书上不太一样
多了一条Try again!的输出(不知道怎么放图我就文字打出运行结果吧)
运行后随便输入了一个值 while的条件语句为真 所以要运行花括号里的printf
但是我第一次输入的值之后显示了两遍Try again!
也就是我输入3.1
程序代码:
What is the value of pi?
3.1
Try again!
Try again!
3.14159
Clouse enough!

只有在第一次输入的时候出现两句Try again!后面的输入就显示正常了

如果第一次就输入3.14159
程序代码:
What is the value of pi?
3.14159
Try again!
Clouse enough!

还是会出现一句Try again!
我在DEV C++中编译运行的,在VS2012中也试了 一样的结果
本人系统win10;

[此贴子已经被作者于2015-12-27 20:56编辑过]

2015-12-27 20:53
infernos
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-11-2
收藏
得分:0 
不好意思,刚发完帖子就发现问题在哪了
第一个scanf函数lf前面少了一个%。
修改后正确了,本来想把帖子删了 没找到哪里删除的, 就修改了下。大家不用回复了。
2015-12-27 20:57
infernos
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2007-11-2
收藏
得分:0 
回复 4楼 zlz66668888
谢谢,已经找到错误处了
本人新手 自学的这本《c primer plus》
所以经常犯一些低级错误
编译书中例题或课后练习题时候
也经常在scanf语句中漏掉&
最开始也没发现原因 总感觉跟书上的运行结果不一样
都是自己粗心造成的
2015-12-27 21:24
快速回复:【已解决】【新手提问】关于c primer plus书中一道例题的疑问
数据加载中...
 
   



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

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