求助c语言,第一题我写的对吗?第二题怎么写?? 20
1个回答
展开全部
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);
}
{
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 继续循环
单步调试, 一下就明白了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询