用递归法讲一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以使任意位数

8-17#include<iostream>voidmain(){voidexchange(intn);intn;printf("输入一个整数\n\n");scanf("... 8-17
#include <iostream>
void main()
{
void exchange(int n);
int n;
printf("输入一个整数\n\n");
scanf("%d",&n);
printf("输出是:\n\n");
if(n<0)
{
putchar('-');
n=-n;
}
exchange(n);
printf("\n\n");
}
void exchange(int n)
{
int i;
if((i=n/10)!=0) exchange(i);
putchar(n%10+'0');
}
【不知道这个问题到底想问些什么 请给重点的句子标上注释 好让我这个新手能读懂这个程序】
展开
 我来答
牛D先森
推荐于2018-04-13 · TA获得超过103个赞
知道答主
回答量:47
采纳率:0%
帮助的人:24.5万
展开全部
#include <iostream>
void main()
{
void exchange(int n);//声明一个函数
int n;
printf("输入一个整数\n\n");
scanf("%d",&n);
printf("输出是:\n\n");
if(n<0)//如果输入的是负数,则输出负号“-”,然后转化为正数处理
{
putchar('-');
n=-n;
}
exchange(n);//调用转换函数,其中包括了转换和输出
printf("\n\n");
}
void exchange(int n)//转换函数定义部分
{
int i;
if((i=n/10)!=0) exchange(i);//i=n/10,保存了,因为i和10都是整数,所以结果不会是浮点型;如果等于0,说明n就是一位数;不为0说明n是个多位数,递归调用,处理i,即n除去个位的部分
putchar(n%10+'0');//n%10取余数运算,结果就是n的最低位。
}
4747哦
2019-07-15 · TA获得超过675个赞
知道小有建树答主
回答量:365
采纳率:73%
帮助的人:71万
展开全部
这题和
输入一个十进制数,输出它的二进制数
狠类似
#include<stdio.h>
void fun(int n, int r)
{
if (n>1) fun(n/2,r); //大于1时(对应的二进制数多于1位的数)递归
printf("%d",n%2); //返回前输出本次的余数
}
main()
{
int n,r=2;
scanf("%d",&n);
fun(n,r);
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式