| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 467 人关注过本帖
标题:数据类型问题!百思不得其解,若将double换成int或float运行就正确!可题目 ...
只看楼主 加入收藏
modengwen
Rank: 2
来 自:柳州
等 级:论坛游民
帖 子:21
专家分:19
注 册:2011-11-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
数据类型问题!百思不得其解,若将double换成int或float运行就正确!可题目要求用double型
#include<stdio.h>
double fun(double x)
{
    double r;
    if(x>1)
        r=x*x+1;
    else
        if(x<-1)
            r=x*x-1;
        else
            r=x*x;
    return r;
        
}
void main()
{
    double x;
    printf("please input x:");
    scanf("%f",&x);
    printf("%f\n",fun(x));
}
//请各位高手帮看看   多谢!我是刚刚起步学C语言
2011-11-28 00:01
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:20 
scanf("%f",&x);这里类型不匹配
double型要用%lf。还有实型比大小,最好不是直接这样比较,当然这里是1和-1,影响不大
程序代码:
#include<stdio.h>
double fun(double x)
{
    double r;
    if((x-1)>1e-6)         //实型比较大小,这里用 x>1问题不大
        r=x*x+1;
    else if((x+1)<-1e-6)   //实型比较大小,这里用 x<-1问题不大
        r=x*x-1;
    else 
         r=x*x;
    return r;
        
}
void main()
{ 
    double x;
    printf("please input x:");
    scanf("%lf",&x);
    printf("%f\n",fun(x));
}
2011-11-28 00:37
modengwen
Rank: 2
来 自:柳州
等 级:论坛游民
帖 子:21
专家分:19
注 册:2011-11-21
收藏
得分:0 
谢谢   我明白了
2011-11-28 12:26
快速回复:数据类型问题!百思不得其解,若将double换成int或float运行就正确!可 ...
数据加载中...
 
   



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

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