一、C语言向上、向下取整问题
math库—— ceil函数是取上整,floor函数是取下整
ceil,用于返回大于或者等于指定表达式的最小整数,用法是double ceil。返回不小于 value 的下一个整数,value如果有小数部分则进一位;ceil返回的类型仍然是float,因为float值的范围通常比integer要大
练习:
根据邮件的重量和蒜头君是否选择加急计算邮费。计算规则:重量在 1000克以内(包括 1000克),基本费 8 元。
超过 1000克的部分,每 500克加收超重费 4 元,不足 500 克部分按 500 克计算;
如果蒜头君选择加急,多收 5 元。
输入格式
输入一行,包含一个正整数和一个字符,以一个空格分开,分别表示重量(单位为克,不超过 2⋅1052\cdot 10^52⋅105)和是否加急。
如果字符是'y'
,说明选择加急;如果字符是'n'
,说明不加急。
#include <stdio.h> #include <math.h> int main(){ int n,x; char ji; scanf("%d %c",&n,&ji); if(ji == 'y'){ if(n < 1000){ printf("13"); }else{ x = (int) ceil((double) (n-1000)/500); printf("%d", 13+ x * 4); } }else{ if(n < 1000){ printf("8"); }else{ x = (int) ceil((double) (n-1000)/500); printf("%d", 8+ x * 4); } } return 0; }