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小时内删除。
发表评论