5、输⼊⼀个不超过5位的正整数,编程实现:求出它是⼏位
数,分别输出每位数字。
1 #include<stdio.h>
2 #include<math.h>
3int flws(int);
4void main()
5 {
6int n,j,k=0;
7    printf("请输⼊⼀个正整数:\n");
8    scanf("%d",&n);
9    j=n;
10while(j!=0)  //取位
11    {
12        j/=10;
13        k++;
14    }
15if(k<=5)
16        flws(n,k);
17else
18        printf("这个数的位数⼤于5位。\n");
19 }
20int flws(int n,int k)
21 {
22int b,fl,i=1;
23while(k!=0)
24    {
25        b=pow(10,k-1); //利⽤pow函数取n-1位的位权
26        fl=n/b;
27        n%=b;
28        printf("这个数的第%d位为%d\n",i,fl);
29        k--,i++;
30    }
31return0;
32 }
1//5、输⼊⼀个不超过5位的正整数,编程实现:求出它是⼏位数,分别输出每位数字。
2 #include<stdio.h>
3 #include<math.h>
4void main()
5 {
6int n,i,j,k,b,f;
7    k=0;
8    scanf("%d",&n);
9    j=n;
10while(j!=0)  //先取位数给k
11    {
12        k++;
13        j/=10;
14    }
15    f=pow(10,k-1);  //取最⾼位位权
16    printf("这个数有%d位\n",k);
17if(k>5||n<=0) printf("该数不是⼩于5位的正整数\n");
18else for(i=1;i<=k;i++) //从⾼到低取位
19        {
20            b=n/f; //取每⼀次最⾼位
21            n=n%f; //去掉最⾼位
22            f/=10;  //改变位权
23            printf("这个数的第%d位为%d\n",i,b);
24        }
25
26 }
还有⼀个很笨⽐的⽅法:
1/*5、输⼊⼀个不超过5位的正整数,
2编程实现:求出它是⼏位数,
3分别输出每位数字。*/
4 #include<stdio.h>
5void main()
6 {
7int n,j,i,k,count,f;
8    k=0;
9    scanf("%d",&n);
10    j=n;
11while(j!=0)  //先取位数给k
printf直接输出数字12    {
13        k++;
14        j/=10;
15    }
16    printf("这个数有%d位\n",k);
17if(k>5||n<=0) printf("该数不是⼩于5位的正整数\n"); 18else for(i=1;i<=k;i++) //从⾼到低取位
19    {
20        f=n;
21for(count=i;count<=k;count++)
22        {
23                j=f%10;
24                f/=10;
25
26        }
27        printf("这个数的第%d为%d\n",i,j);
28    }
29
30 }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。