问答详情
源自:5-8 递归函数(二)

为什么在调用的函数里加了printf会让运行结果变为3?

#include<stdio.h>
int jia(int i)
{
    int sam=0;
    if(i<=0)
    {
        printf("输入错误\n");
    }
    else if(i==1)
    {
        sam+=1;
        return sam;
    }
    else
    {
        sam=i+jia(i-1);
        printf("%d\n",i);
    }
}
int main()
{
    int i=10;
    printf("小明%d天学习了%d个单词\n",i,jia(i));
    printf("运算结束");
}

提问者:qq_老司机_7 2017-08-12 08:55

个回答

  • 硁硁之愚4099589
    2017-08-14 21:31:50
    已采纳

    printf("%d\n",i);后面要加return sam;

  • 慕仰7495308
    2017-08-14 21:26:14

    我也不会