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 }

原文地址:https://www.cnblogs.com/BK-yushen/p/11961866.html

时间: 2024-10-13 15:12:21

5、输入一个不超过5位的正整数,编程实现:求出它是几位数,分别输出每位数字。的相关文章

Python:给定一个不超过5位的正整数,判断有几位

方法一:作比较 [root@python markPy]# cat five.py #!/usr/bin/python3 a=int(input(">>>>")) if a<10: print(1) elif a<100: #第一个条件已经过滤了大于9,所以这里区间是11到100 print(2) elif a<1000: print(3) elif a<10000: print(4) else: print(5) 方法二:使用整除实现,

输入一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

package com.hanqi; import java.util.*; public class Nixudayin { public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.println("输入一个不多于5位的正整数"); Scanner shu=new Scanner(System.in); String a=shu.next(); System.out.println("输入的

给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

package lianxi; import java.util.*; public class Nixudayin { public static void main(String[] args) { System.out.println("输入一个不多于5位的正整数"); Scanner shu=new Scanner(System.in); String a=shu.next(); System.out.println("输入的是"+a.length()+&q

已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。

描述 已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数. 输入 第一行为M,表示测试数据组数.接下来M行,每行包含一个测试数据. 输出 输出M行,每行为对应行的n-1位数(忽略前缀0).如果除了最高位外,其余位都为0,则输出0. 样例输入 4 1023 5923 923 1000 样例输出 23 923 23 0我的程序: #include<iostream>#include<vector>#include<cmat

给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123

题目描述 输入 一个不大于5位的数字 输出 三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数 样例输入 12345 样例输出 5 1 2 3 4 5 54321程序:#include<stdio.h>#include<math.h>int main(){    int a,c,d,count=0,t;    scanf("%d",&a);    d=c=a;    while(c!=0)    {  

给一个不多于5位的正整数,求它是几位数并且逆序打印出各位数字

//给一个不多于5位的正整数,要求:求它是几位数并且逆序打印出各位数字. #include <stdio.h>void main(){    int num,s=0;     printf("请输入一个整数,不多于5位数:\n");     scanf("%d",&num);     while(num>0)     {     printf("%d",num%10);     num=num/10 ;     s++;

c语言 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

    6,给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. //    int num = 0,temp = 0,i = 0; //    printf("输入一位数字:"); //    scanf("%d",&num); //    while (num>0) { //        temp = num % 10; //        printf("%d",temp); //        i++

编程题:已知一个一维数组a[10]中有10个数,求出第m个数到第n个数的和。其中m、n由键盘输入。

#include<stdio.h> int sum(int *q,int n) { int i,s=0; for(i=0;i<n;i++,q++) s+=*q; return s; } void main() { int n,m,a[10]={1,2,3,4,5,6,7,8,9,10}; int *p; printf("Please input m and n(m<n<10):\n"); scanf("%d,%d",&m,&am

求输入一个整数是多少位

#include<iostream> #include<cmath> using namespace std; int main() { int i,j=1; cin>>i; if(i<0) i=fabs(i); else { for(;i/10!=0;i=i/10) j++; } cout<<"j="<<j<<endl; return 0; }