(第20列)C语言典型列题:分解一个不多于五位的数字,分别打印各位数并且判断是几位数。

简介: (第20列)C语言典型列题:分解一个不多于五位的数字,分别打印各位数并且判断是几位数。

先看结果:


代码解析!


解析:

#include<stdio.h>
int main()
{
  int count,a,b,c,d,e,n;
  printf("请输入数字:"); 
  scanf("%d",&count);     //输入
  a=count/10000;     
    //如果是五位数,将万位上的数赋值给a,如果不是则为0
  b=count/1000%10;  
    //如果是四位数,将千位上的数赋值给b,如果是五位数,则b是十位上的数,否则0
  c=count/100%10;
    //如果是三位数,将百位上的数赋值给c,如果是三位以上,则c依次,否则0
  d=count/10%10;
    //如果是两位数,将十位上的数赋值给d,如果是两位以上,则d依次,否则0
  e=count%10;
    //同上 
    //依次判断a、b、c、d、e是否为零,不为零则打印各位数,并输出是几位数
  if(a!=0){
    printf("%d %d %d %d %d\n",e,d,c,b,a);printf("位数为5");
  }else if(b!=0){
    printf("%d %d %d %d\n",e,d,c,b);printf("位数为4");
  }else if(c!=0){
    printf("%d %d %d\n",e,d,c);printf("位数为3");
  }else if(d!=0){
    printf("%d %d\n",e,d);printf("位数为2");
  }else if(e!=0){
    printf("%d\n",e);printf("位数为1");
  }
  return 0;
}


干净的代码:

#include<stdio.h>
int main()
{
  int count,a,b,c,d,e,n;
  printf("请输入数字:");
  scanf("%d",&count);
  a=count/10000;
  b=count/1000%10;
  c=count/100%10;
  d=count/10%10;
  e=count%10;
  if(a!=0){
    printf("%d %d %d %d %d\n",e,d,c,b,a);printf("位数为5");
  }else if(b!=0){
    printf("%d %d %d %d\n",e,d,c,b);printf("位数为4");
  }else if(c!=0){
    printf("%d %d %d\n",e,d,c);printf("位数为3");
  }else if(d!=0){
    printf("%d %d\n",e,d);printf("位数为2");
  }else if(e!=0){
    printf("%d\n",e);printf("位数为1");
  }
  return 0;
}


相关文章
|
2月前
|
C语言
C语言:指针典型例题剖析
C语言:指针典型例题剖析
|
4月前
|
编译器 C语言
C语言中结构体(struct)的详细分解与使用(下)
C语言中结构体(struct)的详细分解与使用(下)
36 0
C语言中结构体(struct)的详细分解与使用(下)
|
23天前
|
存储 算法 编译器
C语言中结构体(struct)的详细分解与使用(中)
C语言中结构体(struct)的详细分解与使用(中)
65 0
|
19天前
|
存储 机器学习/深度学习 编译器
C语言中结构体(struct)的详细分解与使用(上)
C语言中结构体(struct)的详细分解与使用(上)
69 0
|
11月前
|
C语言
C语言—————三子棋,步步分解
C语言—————三子棋,步步分解
|
11月前
|
C语言
C语言-------冒泡排序,步步分解
C语言-------冒泡排序,步步分解
|
C语言
c语言选择结构典型例题
选择结构程序 判断某一年是否是闰年 先分析闰年的条件: 1)能被四整除,但不能被100整除的年份都是闰年,如1996年,2008年,2012年,2048年; 2)能被400整除的年份是闰年,如1600年,2000年是闰年。 不符合这两个条件的年份都不是闰年。
|
机器学习/深度学习 C语言 C++
C语言典型例题八——阶乘
用递归方法求n! 解题思路: 求n!可以用递推方法,即从1开始,乘2,再乘3……一直乘到n。这种方法容易理解,也容易实现。递推法的特点是从一个已知的事实(如1!=1)出发,按一定规律推出下一个事实(如2!=1!2),再从这个新的已知的事实出发,再向下推出一个新的事实(3!=32!)。n!=n*(n-1)!。
100 0
|
C语言
C语言典型例题七——菱形图
菱形图 C语言输出菱形图的原理:循环控制空格数和“*”的数量 空格数由菱形的对角线长减1除2开始,逐行减1,减至0后再逐行加1 *的数量由1开始,逐行加2,当空格数为0后,逐行减2,减至1,结束循环。
|
C语言
C语言典型例题六——九九乘法表
九九乘法表共 9 行 9 列,重点考察 for 循环的掌握情况。