秦矜 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日

悬赏问题

  • ¥15 关于#.net#的问题:End Function
  • ¥50 用AT89C52单片机设计一个温度测量与控制电路
  • ¥15 无法import pycausal
  • ¥15 VS2022创建MVC framework提示:预安装的程序包具有对缺少的注册表值的引用
  • ¥15 weditor无法连接模拟器Local server not started, start with?
  • ¥20 6-3 String类定义
  • ¥15 嵌入式--定时器使用
  • ¥20 51单片机学习中的问题
  • ¥30 Windows Server 2016利用兩張網卡處理兩個不同網絡
  • ¥15 Python中knn问题