C语言 数据的基本处理方法总结

给一个不多于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} 求余来丢弃最高位,以此类推,顺序输出每一位数字。

 二、总结

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

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值