求一批整数中出现最多的个位数字_C语言经典100例007-求低n-1位的数

b27c1eee5b0259ff47596b961ee9c1dc.png

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。

喜欢的同学记得点赞、转发、收藏哦~

后续C语言经典100例将会以pdf和代码的形式发放到公众号

欢迎关注:计算广告生态 即时查收

1 题目

函数:unsigned fun(unsigned w)
功能:w 是一个大于10的无符号整数,若 w 是 n(n>=2)位的整数,函数求出来w的低n-1位的数作为函数值返回
举例:w 值为5923,则函数返回 923

0bd289b9c9f2083b130ce88cbf80530c.png

C语言100题集合-ex007

2 思路

两步走:

  1. 先判断当前无符号整数的位数,记录位数*10。例如:如果有三位,那么记录time=100
  2. 根据time计算后 n-1 位,即:w-((w/time)*time)

3 代码

#include <stdio.h> 
#include <stdlib.h>

/**
函数:unsigned fun(unsigned w)
功能:w 是一个大于10的无符号整数,若 w 是 n(n>=2)位的整数,函数求出来w的低n-1位的数作为函数值返回
举例:w 值为5923,则函数返回 923
**/

unsigned fun(unsigned w) {
 // 先判断数字的位数
 int temp_w = w;
 int time = 1;   // 位数10的指数次
 while(temp_w > 0) {
  time*=10;
  temp_w = temp_w/10;
 }
 time = time/10;
 // 计算返回
 return w-((w/time)*time);
}


int main(int argc, char const *argv[]) {
 int w;
 printf("请一个大于10的无符号整数:");
 scanf("%d", &w);
 printf("无符号整数低n-1位的数为:%dn", fun(w));
}

示例结果:

$ gcc ex007.c -o demo
$ ./demo
请一个大于10的无符号整数:12345
无符号整数低n-1位的数为:2345
$ ./demo
请一个大于10的无符号整数:765432
无符号整数低n-1位的数为:65432

--END--

喜欢本文的同学记得点赞、转发、收藏~

更多内容,欢迎大家关注我们的公众号:计算广告生态

后续C语言经典100例将会以pdf和代码的形式发放到公众号

同时也带来更多系列文章以及干货!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值