数据的基本处理方法总结

给一个不多于5位的正整数,要求:

  1. 求出它是几位数;
  2. 分别输出每一位数字;
  3. 按逆序输出各位数字,例如原数为321,应输出123

一、问题描述及源程序

       题目中体现了编程中常用的对数据进行简单处理的基本方法,核心是得到与丢弃,即输出我们想要的数字信息,丢弃某位的数字再重新运算来获取下一个我们想要的数字信息。

 //第1问 统计一个整数n是几位数
 int GetFigure(int n){
    int i=0;
    while(n!=0){
       n/=10;
       i+=1;
    }
    return i;
 }

       针对第1问,n/=10就是丢弃末位数字的过程,每丢弃一位计数器加一,直到最后一位也被丢弃。最终计数器表示的就是这个整数的位数。

//第2问 逆序输出这个整数每一位数字
 void PrintReverse(int n){
    int m;
    while(n!=0){
        m=n%10;
        n/=10; 
        printf("%d ",m);
    } 
 }

        针对第2问,比第1问多了一个得到的过程,输出最后一位后再丢弃,输出n%10就是得到最后一位数字的过程,n/=10丢弃末位获得新的n值。循环这个过程直到输出所有数字。

 void PrintOrder(int n){
    int i=GetFigure(n);
    int m;
    do{
       m=pow(10.0,i-1);
       i-=1;
       printf("%d",n/m);
       n%=m;
    }while(n!=0);
 }

        针对第3问,顺序输出比逆序输出稍复杂一些,需调用统计位数的函数,因为n不再整除10,而是根据它的位数而定的。例如最高位是万位,要获取万位数,n就除以10^{4},且对10^{4} 求余来丢弃最高位,以此类推,顺序输出每一位数字。

 二、总结

       整除和求余是用于处理数据的基本方法,需注意每次执行完一次得到或丢弃过程,要再次更新除数或被除数的值,防止造成死循环。

你可能感兴趣的:(C语言)