| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 459 人关注过本帖
标题:问一个C语言的问题
只看楼主 加入收藏
DarylL
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2012-12-6
结帖率:87.5%
收藏
已结贴  问题点数:7 回复次数:7 
问一个C语言的问题
13行的while语句,我想用它来判断输入的是一个double型还是一个字符,以判断是否结束循环。可是不知道该怎么做。用scanf可以实现么?谢谢了!
程序代码:
#include <stdio.h>

/*    华氏温度转摄氏温度、开氏温度    */
double Temperature (double x);    /*    转换并打印温度的函数    */

int main (void)
{
    double fahrenheit;

    printf ("Please enter the tempreture in Fahrenheit (non-number to quit) :");
    scanf ("%lf", &fahrenheit);

    while ()
    {
        Temperature (fahrenheit); 

        printf ("Please enter the tempreture in Fahrenheit (non-number to quit) :");
        scanf ("%lf", &fahrenheit);
    } 

    return 0;
}

/*    转换并打印温度的函数    */
double Temperature (double x)
{
    const double FAHRENHEIT_TO_CELCIUS_BY = 1.8, double FAHRENHEIT_TO_CELCIUS_PLUS = 32.0, double CELCIOUS_TO_KELVIN = 273.16;
    double celcius, kelvin;
   
    celcius = FAHRENHEIT_TO_CELCIUS_BY * x + FAHRENHEIT_TO_CELCIUS_PLUS;
    kelvin = celcius + CELCIOUS_TO_KELVIN;

    printf ("%.2lf Fahrenhit = %.2lf Celcious = %.2lf Kelvin\n", x, celcius, kelvin);
}



[ 本帖最后由 DarylL 于 2013-1-31 20:43 编辑 ]
搜索更多相关主题的帖子: double C语言 
2013-01-31 20:41
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:3 
主函数改为
程序代码:
int main(void)
{
    double fahrenheit;
    while( printf("Please enter the tempreture in Fahrenheit (non-number to quit) :")
        , scanf("%lf",&fahrenheit)==1 )
    {
        Temperature(fahrenheit);
    }

    return 0;
}

那个子函数Temperature也错误连篇呀,因为是粗心大意造成的,所以你得自己改
2013-02-01 09:05
DarylL
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2012-12-6
收藏
得分:0 
回复 2楼 rjsp
为什么是 == 1?这个不明白呀。
2013-02-01 19:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用DarylL在2013-2-1 19:45:21的发言:

为什么是 == 1?这个不明白呀。

好好看看scanf()函数的使用手册。

btw: 你这个意图在本质上是错误的,没有任何办法辨析输入的数据是不是double型!你用"%lf"来接收,是自己强制scanf()把输入的字符串解释为double并以它解释成功当作输入的真是double数据,事实上你输入整数也能被scanf("%lf")解读为Double小数。

授人以渔,不授人以鱼。
2013-02-01 19:52
DarylL
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2012-12-6
收藏
得分:0 
回复 4楼 TonyDeng
那我想问下,C Primer Plus的114页第8题的程序该怎么写?
2013-02-01 21:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
我没有那本书。你可以决定遇到错误或非法输入就终止程序,并不一定要检测数据是否Double型。

授人以渔,不授人以鱼。
2013-02-01 23:23
DarylL
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2012-12-6
收藏
得分:0 
回复 6楼 TonyDeng
谢谢,已经解决了。

[ 本帖最后由 DarylL 于 2013-2-2 11:40 编辑 ]
2013-02-02 11:30
zhlianghai
Rank: 2
等 级:论坛游民
帖 子:30
专家分:54
注 册:2012-12-25
收藏
得分:0 
回复 7楼 DarylL
我也看这书
2013-02-02 11:58
快速回复:问一个C语言的问题
数据加载中...
 
   



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

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