标题:可以帮忙解释一下这个程序的调试过程吗 初次发帖 谢谢大家
只看楼主
mslf
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-2-24
结帖率:0
已结贴  问题点数:20 回复次数:2 
可以帮忙解释一下这个程序的调试过程吗 初次发帖 谢谢大家
#include<stdio.h>
int fun(int s1,int s2){
    if(s2<10)
    return(s1*10+s2%10);
    s1=s1*10+s2%10;
    s1=fun(s1,s2/10);
    return s1;
}
int main(){
    printf("%d",fun(0,1234));
}
搜索更多相关主题的帖子: int 发帖 fun 调试 过程 
2022-02-24 16:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
算法没变,只是增加了一条输出语句
程序代码:
#include <stdio.h>

unsigned fun( unsigned a, unsigned b )
{
    printf( "%u, %u\n", a, b );
    if( b == 0 ) 
        return a;
    return fun( a*10+b%10, b/10 );
}

int main( void )
{
    printf( "%u\n", fun(12345,678) );
}


输出是
12345, 678
123458, 67
1234587, 6
12345876, 0
12345876
看出来了吧
2022-02-25 11:12
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:101
专家分:643
注 册:2021-7-1
得分:10 
供参考:
程序代码:
#include<stdio.h>
int fun(int s1, int s2) {
    printf("%d,%d\n", s1, s2);
    if (s2 < 10)
        return(s1 * 10 + s2 % 10);
    s1 = s1 * 10 + s2 % 10;
    s1 = fun(s1, s2 / 10);
    return s1;
}
int main() {
    printf("%d", fun(0, 12345));
    return 0;
}
//fun()函数为递归函数,实现将数 s2 逆序后,保存到 s1. 
//s1   s2 
//0, 12345
//5, 1234
//54, 123
//543, 12
//5432, 1
//54321


[此贴子已经被作者于2022-2-25 13:42编辑过]

2022-02-25 13:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-508412-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063743 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved