JackQin


私信TA

用户名:2219529518

访问量:13783

签 名:

真正的大师永远怀着一颗学徒的心。

等  级
排  名 663
经  验 4016
参赛次数 5
文章发表 25
年  龄 18
在职情况 学生
学  校 上海交通大学
专  业 计算机科学

  自我简介:

纵然疾风起,人生不言弃。

TA的其他文章

解题思路:首先利用C语言的一个特性,整型(整数)只有整数部分,多了的直接丢掉;其次采用一个依此求各位数上的办法,数学好的应该能看懂,举个例子:例如“123‘这个数,在C语言里123除以100就是百位上的数并设其为x1,那十位上的数x2=123/10-10*x1,然后就是很简单的装入数组里了,再有序地打印

注意事项:

1、开头的判断几位数的”等于号“一定不能少,不然可能会让程序直接崩溃

2、代码虽然简单,但每个变量,运算符都有意义,要用心去看

3、整个方法偏数学,所以用到的C知识并不是很深

参考代码:

#include<stdio.h>
int main()
{
    int n,x,all[5],x1=0,x2=0,x3=0,x4=0,x5=0;
    scanf("%d",&n);
    if (n<=99999)
        x=5;
    if (n<=9999)
        x=4;
    if (n<=999)
        x=3;
    if (n<=99)
        x=2;
    if (n<=9)
        x=1;
    if (n/10000>=1)
        x5=n/10000;
    if (n/1000>=1)
        x4=n/1000-10*x5;
    if (n/100>=1)
        x3=n/100-100*x5-10*x4;
    if (n/10>=1)
        x2=n/10-1000*x5-100*x4-10*x3;
        x1=n-10000*x5-1000*x4-100*x3-10*x2;
    if (n<10)
    {
        printf("1\n%d\n%d\n",n,n);
        return 0;
    }
        all[0]=x1;
        all[1]=x2;
        all[2]=x3;
        all[3]=x4;
        all[4]=x5;
        int z;
        printf("%d\n",x);
        for (z=x;z>0;z--)
            printf("%d ",all[z-1]);
        printf("\n");
        for (z=x;z>0;z--)
            printf("%d",all[x-z]);
    return 0;
}



 

0.0分

0 人评分

  评论区

  • «
  • »