| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 480 人关注过本帖
标题:求解一个问题,为什么 y<0 时,输出结果不对?
只看楼主 加入收藏
lcq131419
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-4-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
求解一个问题,为什么 y<0 时,输出结果不对?
#include<stdio.h>
double mhs(double x,int y)
{
if (y==1)
return x;
else
    if(y>1)
       return x * mhs(x,y-1);
    else
        if(y<0)
            return 1.0/x*mhs(x,(-y)-1);

 
}
void main()
{
    int x,y;/*定义三个变量*/
    double f;
    printf("enter two number(x,y):");
    scanf("%d%d",&x,&y); /*输入xy的值*/
    f=mhs(x,y);   /*调用自定义mhs函数*/
    printf("%f\n",f);    /*输出f*/
}
为什么y<0时,输出结果不对?
搜索更多相关主题的帖子: double return 
2014-04-26 22:49
balancad
Rank: 1
等 级:新手上路
帖 子:19
专家分:6
注 册:2014-4-21
收藏
得分:5 
具体看不出来。但是代码中有一些有语法错误。首先,你在写mhs()函数时定义了y是double而,x是int的。但是下面的主函数里面你把x和y定义成int的。这里错误了。主函数的scanf函数里面两个格式符之间最好用一个逗号分开。不然你测试的时候可能有错误。你之所以输出错误可能就是这里。试着改回来看一下scanf("%d,%f",&x,&y)。改成这样看一下
2014-04-26 22:59
balancad
Rank: 1
等 级:新手上路
帖 子:19
专家分:6
注 册:2014-4-21
收藏
得分:0 
具体看不出来。但是代码中有一些有语法错误。首先,你在写mhs()函数时定义了y是double而,x是int的。但是下面的主函数里面你把x和y定义成int的。这里错误了。主函数的scanf函数里面两个格式符之间最好用一个逗号分开。不然你测试的时候可能有错误。你之所以输出错误可能就是这里。试着改回来看一下scanf("%d,%f",&x,&y)。改成这样看一下
2014-04-26 22:59
lcq131419
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-4-21
收藏
得分:0 
回复 2 楼 balancad
改了还是一样
2014-04-26 23:05
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:15 
y=0时,函数值是什么?
2014-04-26 23:35
code_farmer
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:29
专家分:117
注 册:2014-4-21
收藏
得分:0 
程序代码:
#include<stdio.h>

double mhs(double x, int y) 
{    
    if (y == 1) 
        return x; 
    else
        if(y > 1) 
            return x * mhs(x,y-1);
        else 
            if(y < 0)
                return 1.0/x * mhs(x, (-y)-1);
            else        //当y=0的时候,返回1
                return 1;


}
void main()
{
    int y;/*定义三个变量*/
    double x, f; //你之前定义的是int型,应该改为double型

    printf("enter two number(x,y): ");
    scanf("%lf %d", &x, &y); /*输入xy的值*/

    f = mhs(x, y);          /*调用自定义mhs函数*/
    printf("%.3f\n", f);   /*输出f*/
}

改了一下代码,运行可以了,以后写代码的时候,可以注意一下代码规范,格式什么的,这样看起来会比较舒服,还有提问的时候,最好把问题说清楚,大家才能理解你的意思
2014-04-27 00:15
Andrew_Lee
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:185
专家分:626
注 册:2014-3-21
收藏
得分:0 
我觉得这个程序可能会陷入死循环
2014-04-27 09:42
快速回复:求解一个问题,为什么 y<0 时,输出结果不对?
数据加载中...
 
   



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

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