十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
C语言的取整是指将浮点数转换为整数,即只取整数部分。
创新互联建站为客户提供专业的成都网站建设、成都网站设计、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、手机网站制作设计等网站方面业务。
这个操作并不是通过函数实现的,而是C语言的强制类型转换。
强制浮点数转换为整数的规则为,只取浮点数的整数部分,无条件舍去小数部分。
形式为
(int)float_number
于是
(int) 1.3 的结果为1。
(int) 2.9999的结果为2。
另一种常见的取整需求为四舍五入到整数,可以通过
(int)(float_number+0.5)
的方式实现。
即
(int)(1.49+0.5) = (int)1.99 = 1;
(int)(2.5+0.5)=(int)(3.0) = 3。
#includestdio.h
int count = 1;
int calc(int num){
while (1 == 1) {
count++;
num /= 10;
if(num 0){ //小于0的数就变成正数
num *= -1;
}
if (num 10) {
break;
}
}
return count;
}
void main(){
int num = 0;
printf("请输入一个数:");
scanf("%d",num)
printf("数字%d是一个%d位数!",num,calc(num));
}
编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它。C语言实现代码如下:
#includestdio.h
#includemath.h
int fun_gy(int,int); //声明最大公约数函数
int fun_gb(int,int); //声明最小公倍数函数
main()
{
int a,b,gy,gb;
printf("输入两个整数:\n");
scanf("%d%d",a,b);
gy=fun_gy(a,b); //调用最大公约数函数
gb=fun_gb(a,b); //调用最小公倍数函数
printf("最大公约数是:%d\n最小公倍数是:%d\n",gy,gb);
}
int fun_gy(int x,int y)
{
int z,i;
if(xy)
z=sqrt(y);
else
z=sqrt(x);
for(i=z;i=1;i--)
{
if(x%i==0y%i==0)
break;
}
return i;
}
int fun_gb(int x,int y)
{
int z,i;
z=x*y;
for(i=x;i=z;i++)
{
if(i%x==0i%y==0)
break;
}
return i;
}
程序运行结果:
扩展资料:
这里涉及到了最大公约数和最小公倍数的计算方法:
我们知道两个整数的最小公倍数等于他们的乘积除以他们的最大公约数。所以关键还是最大公约数的计算。
辗转相除法(求最大公约数):
假设求a,b的最大公约数,则:
(1)a除以b取余得c,若c=0,则b即为两数的最大公约数,输出,结束。
(2)若c != 0,则将b赋给a,c赋给b再返回上一步操作,继续执行。
例如,求30和98的最大公约数,过程如下:
90%30 = 8;
30%8 = 6;
8%6 = 2;
6%2 = 0;
所以最大公约数为2。
代码如下:
#include stdio.h
int sum(int n)
{
if(n == 0)
return 0;
else
return n % 10 + sum(n / 10);
}
int main(void)
{
int n;
scanf("%d", n);
printf("%d\n", sum(n));
return 0;
}
第三个函数
#includestdio.h
void
main()
{
int
a,b,back;
int
mulnum(int
a,int
b);
printf("请输入两个整数:");
scanf("%d%d",a,b);
back=mulnum(a,b);
if(back==1)
printf("%d
is
multiple
of
%d\n",a,b);
else
if(back==2)
printf("%d
is
multiple
of
%d\n",b,a);
else
;
}
int
mulnum(int
a,int
b)
{
double
result;
if((result=a%b)==0)
return
1;
else
if((result=b%a)==0)
return
2;
else
return
0;
}
这个函数能技能判断a是否为b的倍数,还能判断b是否为a的倍数。楼主如果不需要第二个功能,把else
if语句
去掉就行了。
1使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:
floor(2.5) = 2
floor(-2.5) = -3
2使用ceil函数。ceil(x)返回的是大于x的最小整数。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。