古灵精怪


私信TA

用户名:likec

访问量:2947

签 名:

等  级
排  名 3707
经  验 1791
参赛次数 0
文章发表 19
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

        看注释即可。注释是本人解决本题的心路历程。(有点杂,凑合看吧。)

注意事项:

参考代码:

#include<stdio.h>
int main()
{
    int x1,x,a,b[5],i;            //首先确定的变量是输入的数x,然后根据需要再去设置变量a,x1,以及数组b[]。
    scanf("%d",&x);
    x1=x;                        //(本来没有设x1这个变量,但后面需要用到x的值,才用变量x1先代替x)
    for(a=0;x1>0;a++)            //这个for循环是求x的位数,用a输出。
    {
        x1=x1/10;                //采用x1/10,依次得到个位,十位,百位···
         
    }
    printf("%d\n",a);
    for( i=0;i<a;i++)        //这个for循环是为了给数组赋值。(为什么是i<a呢?因为位数是不确定的,所以我不采用i<5做循环结束的条件)
        {
             
            b[i]=x%10;            //b[0]是个位的数,b[1]是十位的数,依次赋值
           x=x/10;                //这里就是第二行注释说的事。后面不需要x了,所以我可以直接改变x的值。
             
        }
    for( i=a-1;i>=0;i--)    //这个for循环是为了实现题目中结果的第二行。(但我阴差阳错地先实现了结果的第三行,所以请先看下一个for循环。)
        {
            printf("%d",b[i]);    //倒序输出数组b[]。
            if(i!=0)
            printf(" ");
            else if(i==0)        //当输出了b[0]后,不打印空格而是进行换行操作。
            printf("\n");
        }
    for( i=0;i<a;i++)            //这个for循环实现了倒叙输出x。
    {
        printf("%d",b[i]);        //数组b[]是按照 个 十 百 千 的顺序赋值的,所以直接按正序输出即可。
    }
    return 0;
}                                        //如果对本题有疑问或者分享更好的思路,欢迎评论,大家一起讨论进步!
 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

#include<stdio.h>
int main(void)
{
	int n, num = 0, i, t[5];
	scanf("%d", &n);
	while (n > 0)
	{
		t[num] = n % 10;
		num++;
		n /= 10;
	}
	printf("%d\n", num);
	for (i = 0; i < num; i++)
	{
		printf("%d ", t[num - 1 - i]);
	}
	printf("\n");
	for (i = 0; i < num; i++)
	{
		printf("%d", t[i]);
	}

	return 0;
}

各个位存到数组,直接输出,没试过字符串
2021-09-06 00:32:04
  • «
  • 1
  • »