5输入一个不超过5位的正整数,编程实现:求出它是几位数,分别输出每位数字。
Posted 醉翁之意不在酒YS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5输入一个不超过5位的正整数,编程实现:求出它是几位数,分别输出每位数字。相关的知识,希望对你有一定的参考价值。
1 #include<stdio.h> 2 #include<math.h> 3 int flws(int); 4 void main() 5 { 6 int n,j,k=0; 7 printf("请输入一个正整数:\n"); 8 scanf("%d",&n); 9 j=n; 10 while(j!=0) //取位 11 { 12 j/=10; 13 k++; 14 } 15 if(k<=5) 16 flws(n,k); 17 else 18 printf("这个数的位数大于5位。\n"); 19 } 20 int flws(int n,int k) 21 { 22 int b,fl,i=1; 23 while(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 } 31 return 0; 32 }
1 //5、输入一个不超过5位的正整数,编程实现:求出它是几位数,分别输出每位数字。 2 #include<stdio.h> 3 #include<math.h> 4 void main() 5 { 6 int n,i,j,k,b,f; 7 k=0; 8 scanf("%d",&n); 9 j=n; 10 while(j!=0) //先取位数给k 11 { 12 k++; 13 j/=10; 14 } 15 f=pow(10,k-1); //取最高位位权 16 printf("这个数有%d位\n",k); 17 if(k>5||n<=0) printf("该数不是小于5位的正整数\n"); 18 else 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> 5 void main() 6 { 7 int n,j,i,k,count,f; 8 k=0; 9 scanf("%d",&n); 10 j=n; 11 while(j!=0) //先取位数给k 12 { 13 k++; 14 j/=10; 15 } 16 printf("这个数有%d位\n",k); 17 if(k>5||n<=0) printf("该数不是小于5位的正整数\n"); 18 else for(i=1;i<=k;i++) //从高到低取位 19 { 20 f=n; 21 for(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 }
以上是关于5输入一个不超过5位的正整数,编程实现:求出它是几位数,分别输出每位数字。的主要内容,如果未能解决你的问题,请参考以下文章
编写程序,输入一个不多于5位的正整数,要求:(1)输出它是几位数; (2)分别输出每一位数字?
给定一个不多于5位的正整数,要求:① 求它是几位数;② 分别打印出每一位数字;③ 按逆序打印出各位数
给一个不多于5位的正整数,要求:一求它是几位数,二逆序打印出各位数字。
输入一个不多于5位的正整数,要求:一求它是几位数,二逆序打印出各位数字。