floor,ceil,round
程序员文章站
2022-06-03 08:41:04
...
向下取整,向上取整,四舍五入
#include<stdio.h>
#define SIZE 5
void MyFloor(float *p);
void MyCeil(float *p);
void MyRound(float *p);
int main()
{
printf("1 向下取整, 2 向上取整, 3 四舍五入:\n");
int temp;
scanf("%d",&temp);
if(temp!=1 && temp!=2 && temp!=3){
return 1;
}
float a[SIZE];
int i;
printf("输入五个数组元素:\n");
for(i=0;i<SIZE;i++){
printf("ERROR!");
scanf("%f",a+i);
}
switch(temp)
{
case 1: MyFloor(a); break;
case 2: MyCeil(a); break;
case 3: MyRound(a); break;
default: break;
}
for(i=0;i<SIZE;i++){
printf("%-4g",*(a+i));
}
return 0;
}
void MyFloor(float *p)
{
float *q=p;
while(q<p+SIZE){
if(*q>=0){
*q=(int)(*q);
}
else{
int tep=(int)(*q);
if(*q==(float)tep){
*q=tep;
}
else{
*q=tep-1;
}
}
q++;
}
}
void MyCeil(float *p)
{
float *q=p;
while(q<p+SIZE){
if(*q>=0){
int tep=(int)(*q);
if(*q==(float)tep){
*q=tep;
}
else{
*q=tep+1;
}
}
else{
*q=(int)(*q);
}
q++;
}
}
void MyRound(float *p)
{
float *q=p;
while(q<p+SIZE){
if(*q>=0){
*q=(int)(*q+0.5);
}
else{
int sign=-1;
*q=*q*sign;
*q=(int)(*q+0.5)*sign;
}
q++;
}
}
运行结果:
上一篇: 浅谈apache和nginx的rewrite的区别
下一篇: javascript闭包操作
推荐阅读
-
JavaScript中用于四舍五入的Math.round()方法讲解
-
JavaScript中使用Math.floor()方法对数字取整
-
python通过floor函数舍弃小数位的方法
-
C# Math.Round()函数问题
-
POJ3252Round Numbers(数位dp)
-
javascript中floor使用方法总结
-
PHP取整函数:ceil,floor,round,intval的区别详细解析
-
php取整函数ceil,floo,round的用法及介绍
-
Python除法之传统除法、Floor除法及真除法实例详解
-
Codeforces Round #595 (Div. 3)D1D2 贪心 STL