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

#include"stdio.h"
main()
{ int n;
printf("Input n : ");
scanf("%d", ① );
r(n);
printf("\n");
}
r( int m )
{ printf("%d", ② );
m = ③ ;
if( ④ )
⑤ ;
}

答案是:①:&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、注意格式,在书写代码时,要注意换行和空格,好的格式可以一眼看出代码的结构,可以选择每行写一句代码。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-04
第一处:&n
第二处:m
第三处:m-1
第四处:m!=0
第五处:return r(m)
楼主这题符号全是用中文符号的,我一运行,30多个错,哈哈,然后把符号改了就好了。。没问题了本回答被提问者采纳
第2个回答  2010-04-07
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);

}
第3个回答  2010-04-08
第一处:&n
第二处:m%10
第三处:m/10
第四处:m!=0
第五处:r(m)
第4个回答  2020-11-05

#include<stdio.h>


void r(int m){

printf("%d", m%10);

m = m/10;

if(m!=0) return r(m);

}



int main(){

int n;

printf("input n:");

scanf("%d", &n);

r(n);

printf("\n");

}