c语言 求百位的方法

Python014

c语言 求百位的方法,第1张

这两种算法都对的

第一种是先对1000取余,剩下百位和十位及个位,再对100取整就得到百位了。

第二种是先对100取整

,就会得到a[i]的百位及以上的位数,那么结果a[i]/100里的个位就就是原来的a[i]的百位,再用a[i]/100对10取余,就得到a[i]/100个位数字,也即是原来的a[i]的百位数字。

c语言的算法是很灵活的,很多都有多种算法。

设一个数为n,则在C语言中其个位、十位、百位、千位依次这样计算:n/1%10,n/10%10,n/100%10,n/1000%10

代码如下:

#include<stdio.h>

int main(){

int n = 123456

int unitPlace = n / 1 % 10

int tenPlace = n / 10 % 10

int hundredPlace = n / 100 % 10

int thousandPlace = n / 1000 % 10

printf("个位:%d\n十位:%d\n百位:%d\n千位:%d\n", unitPlace, tenPlace, hundredPlace, thousandPlace)

getchar()

return 0

}

运行结果如图:

扩展资料

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

参考资料:百度百科--C语言

假设那么数为x,不知道是多少位的.

你可以使用下面的表达式:

个位:x%10;十位:x/10%10;百位:x/100%10;千位:x/1000%10。

C语言有以下几种取整方法:

1、直接赋值给整数变量。如:

int i = 2.5或 i = (int) 2.5

这种方法采用的是舍去小数部分,可以用于你的问题。

2、C/C++中的整数除法运算符"/"本身就有取整功能(int / int),而下面介绍的取整函数返回值是double。整数除法对正数的取整是舍去小数部分,但是整数除法对负数的取整结果和使用的C编译器有关。

3、使用floor函数。floor(x)返回的是x的整数部分。如:

floor(2.5) = 2

floor(-2.5) = -3

4、使用ceil函数。ceil(x)返回的是不大于x的最小整数。如:

ceil(2.5) = 2

ceil(-2.5) = -2

floor和ceil对于正数没有区别,但是对于负数结果不同。floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。