Mister-小方


私信TA

用户名:1104986125

访问量:237588

签 名:

如此英俊为哪般

等  级
排  名 3
经  验 35515
参赛次数 1
文章发表 68
年  龄 19
在职情况 学生
学  校 大连交通大学
专  业 车辆工程

  自我简介:

TA的其他文章

解题思路以及注意事项:

  每一个程序员都有自己独特的写法,针对同一问题的解法也是仁者见仁,智者见智,这道题就深刻地阐释了这个真理。

  好,下面大家看看小方的代码,小方会在代码之中给大家讲解小方的解题思路!

实例代码:

#include"stdio.h"
int main()
{
    int x,i,item=10000,number,size;//x用来存用户输入的数,i为控制循环常用的数,item为计算位数的数
    scanf("%d",&x);                //number为替代x的数,以保证x的完整,size为存位数的数,以便后面用
    for(i=5;i>0;i--,item/=10)
    {
        if(x/item)                 // 循环判断位数
        {
            printf("%d\n",i);
            size=i;
            break;
        }
    }
    for(i=0,item=1;i<size;i++)
    {
        item*=10;                   //得出像10000 1000 100 10这样的数,用到下面的循环中去
    }
    for(i=5,number=x;i>0 && number!=0;i--,item/=10)
    {
        if(number/item==0)continue; //保证小于五位的数分开输出前面不会有0
        if(i==1)
            printf("%d",number/item);//最后一位后面没有0
        else
            printf("%d ",number/item);//输出
        number%=item;
    }
    printf("\n");
    for(i=5,number=x;i>0&&number!=0;i--)//逆序输出,相比前面的简单很多,相信大家看的懂
    {
        printf("%d",number%10);
        number/=10;
    }
    return 0;
}

还有不懂的请在评论区留言,小方会为您解答


 

0.0分

41 人评分

  评论区

int a,b,i,c,q;
    c=1;
    scanf("%d",&a);
    q=a;
    for(i=1;i<=5;i++)
    {
        c=c*10;
        if(a/c==0)
        {
            printf("%d",i);
            break;
        }
    }
    printf("\n");
    for(i=1;i<=5;i++)
    {
        c=c/10;
        b=a/c;
        a=a%c;
        if(a>0)
            printf("%d ",b);
        else
            printf("%d",b);
    }
    b=0;
    printf("\n");
    for(i=1;i<=5;i++)
    {
        c=q%10;
        q=q/10;
        b=b*10+c;
        if(q==0)
            break;
    }
    printf("%d",b);
    return 0;
请问 为什么网页编译器通过了, 软件codeblock 却出错了
2018-11-13 21:19:01
看的懂,写不出来。o(╯□╰)o
2018-09-12 21:43:45
第二行的输出不对呀
2018-09-10 11:01:25
item*=10; 
17行这句代码什么意思,带星号什么作用
2018-08-13 23:20:17
第二行输出的代码有问题
2018-08-05 20:50:17
#include<stdio.h>
int main()
{
    int a,c,b=0;
    scanf("d%",&a);
    while(a%10!=0)
    {
        c=a%10;
        b++;
    }
    printf("d%",b);
    printf("d%",a);
    printf("d%",c);
    
    return 0;
}
我想知道我的为什么不对?
2018-05-01 13:31:56
好像输入980分别输出不会输出0只会出现9   8
2018-04-14 16:40:41