秦矜 2021-11-05 15:24 采纳率: 100%
浏览 35
已结题

递归逆序输出一个数的错误

目的是想将1234按4 3 2 1输出,但从输出2的那一步就开始不正常了呜呜呜

#include <stdio.h>
void f(double num);

int main(void){
double num;
scanf("%lf",&num);
f(num);
}

void f(double num){
int k = (int) (num/10);

if(k==0){
    printf("%d\n",(int)num);
}else{

    printf( "%d\n",(int)((num/10-k)*10));
            
    f((double)k);
}

}

img

  • 写回答

3条回答 默认 最新

  • 冷0_O 2021-11-05 15:37
    关注

    你好,递归方法已给出,望采纳!

    int Reverse_order(int n)
    {
        if(0 == n) //递归结束条件
            return n;
        printf("%d\n",n%10); //当前所求
        Reverse_order(n/10); //下一次的传值
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 修改了问题 11月5日
  • 创建了问题 11月5日