qq_41525202 2020-03-12 11:36 采纳率: 0%
浏览 140

请问这个程序我写的对吗

想问一下我这个这么写为什么在DEVc++上运行不出结果呀,我感觉逻辑没啥问题呀。
问题:求1+2!+3!+...+20!的和
#include

int cheng(int n){
int j;

while(n>0){
j=n*cheng(n-1);
}
return j;

}
int main(){

int i;
int sum=1;
for(i=2;i<=20;i++){
    sum=sum+cheng(i);
}
printf("%d",sum);

}

  • 写回答

3条回答 默认 最新

  • 波塞冬的祝福 2020-03-12 11:42
    关注

    因为你使用递归调用,但是递归函数没有出口。
    递归函数必须要有一个出口。否则会一直走cheng()那个函数。
    你读一下代码,当n=2时,程序就一直在cheng()出不去了。
    你可以点个断点,单步执行运行看一看。
    好好学,加油。

    评论

报告相同问题?

悬赏问题

  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题