爱问知识人 爱问共享资料 医院库

c语言,递归调用汉诺塔问题,输入负数依然出结果

首页

c语言,递归调用汉诺塔问题,输入负数依然出结果

程序如下:
#include
int ff(int n)
{
int f;
if (n<0)
printf("dataerror");
else if (n==0||n==1)
f=1;
else f=n*ff(n-1);
return(f);
}
void main()
{
int y;
int n;
printf("please input a number:");
scanf("%d",&n);
printf(" ");
y=ff(n);
printf("%d!=%d",n,y);
printf(" ");
}
输入-3,输出为please input a number:-3
dataerror-3!=-1217363980。
请问有人解决这个问题了吗,交流下

提交回答

全部答案

    2018-12-09 01:50:30
  • 输入负数,子函数虽然没有递归调用了,但是在子函数中为 变量 f 分配了内存,依旧能够返回 f 的值,而且这个值是不确定的,这种行为也可以称为未定义的行为。
    要想输入负数,终止程序,在子函数中改动
    if(n<0){
    printf("dataerror ");
    exit(1);
    }

    在***

    2018-12-09 01:50:30

类似问题

换一换

相关推荐

正在加载...
最新资料 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 173-192
返回
顶部
帮助 意见
反馈
关注
爱问

关注爱问微信公众号,开启知识之旅,随时随地了解最新资讯。

确定举报此问题

举报原因(必选):