求助c语言,第一题我写的对吗?第二题怎么写?? 20

 我来答
HDq9111015
2016-06-13
知道答主
回答量:4
采纳率:0%
帮助的人:4万
展开全部
void insert(char str[],int n)
{
int i = 0;

while (n > 0)
{
str[i++] = n % 10 + '0';
str[i++] = ' ';
n = n / 10;
}
}

void main()
{
char str[80] = {}; int digit;
printf("Input your digit :\n");
scanf("%d",&digit);
insert(str,digit);
printf("%s\n",str);
}
追问
能解释一下每一条语句都是什么含义吗?
追答
str[i++] = n % 10 + '0';    当前下标的值为  n % 10 对10 取余。  + ‘0’ 转换成数字,因为字符存的也是 ascii 码,然后 下标后移一位

str[i++] = ' '; 当前下标的值为 空格 下标后移一位

n = n / 10 ; 取余过后要相除 比如 1998 经过上面的运算, 8 已经取到了, 除10 得到 199 继续循环

单步调试, 一下就明白了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式