【3.30】用递归实现将输入小于32768的整数按逆序输出。如输入12345,则输出54321。

2024-11-26 11:17:10
推荐回答(3个)
回答(1):

答案是:①:&n;②:m%10;③:m/10;④:m!=0;⑤:return r(m)。

scanf的输出格式规定,输出的变量前要加&,所以第一个空的答案是:&n。

由于是逆序输出,所以当“12345”传到r函数时,先输出个位,通过12345%10得到个位,所以第二处的答案是:m%10。

由于已经把个位输出,所以要把变量的个位进行去掉,通过除以10去掉个位,故第三空的答案是:m/10。

删除变量最后一位的数字后,需要判断是否为0,如果为0就不需要计算,直接返回结果,所以第四空的答案是:m!=0;第五的答案是:return r(m)。

通过补全修改代码,并在电脑的vc6.0中进行运行(如下图),得到结果,并验证了答案代码的正确。

扩展资料:

注意事项:

1、理解题目意思很重要,在根据题目补充代码时,要根据上下文推敲,如本题中:scanf("%d", ① );,就可根据scanf的使用规则,进行推出答案&n。

2、注意中英文的分号,代码中出现中文分号结尾,会报错。且在电脑书写代码时,大部分人都会遇到过这个错误,所以在打分号时要注意输入法。

3、注意格式,在书写代码时,要注意换行和空格,好的格式可以一眼看出代码的结构,可以选择每行写一句代码。

回答(2):

第一处:&n
第二处:m
第三处:m-1
第四处:m!=0
第五处:return r(m)
楼主这题符号全是用中文符号的,我一运行,30多个错,哈哈,然后把符号改了就好了。。没问题了

回答(3):

main()
{
int n;
printf("Input n : ");
scanf("%d",&n);
r(n);
printf("\n");

}

r( int m )
{ printf("%d",m%10);
m =m/10;
if( m!=0)
return r(m);

}