系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。
喜欢的同学记得点赞、转发、收藏哦~
后续C语言经典100例将会以pdf和代码的形式发放到公众号
欢迎关注:计算广告生态 即时查收
1 题目
函数:unsigned fun(unsigned w)
功能:w 是一个大于10的无符号整数,若 w 是 n(n>=2)位的整数,函数求出来w的低n-1位的数作为函数值返回
举例:w 值为5923,则函数返回 923
C语言100题集合-ex007
2 思路
两步走:
- 先判断当前无符号整数的位数,记录位数*10。例如:如果有三位,那么记录time=100
- 根据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和代码的形式发放到公众号
同时也带来更多系列文章以及干货!