题解 | #牛牛的快递#

牛牛的快递

https://www.nowcoder.com/practice/41b42e7b3c3547e3acf8e90c41d98270

#include <stdio.h>
int main()
{
	float kg = 0.0;
	char ch = 0;
	int price = 20;
	scanf("%f %c", &kg, &ch);  //输入kg 是否需要加急
	if (ch == 'y')	//需要加急
		price += 5;	
	if (kg > 1)	//大于1kg
	{
            if(kg>(int)kg)      //2.5>2 按照3kg 但是只加价2kg超出的
			price += (int)kg;
            else
             price+=(int)kg-1;  //  price += 3.0-1  减去默认的1kg
	}
	printf("%d", price);    //小于1kg 或者已经加价完
	return 0;
}

全部评论
用<math.h> ceil()函数,向上取整的,比如ceil(2.5) 得到3 ceil取整返回的是大于等于表达式的最小整数,而float强制转换int取整返回的是小于等于表达式的最大整数</math.h>
点赞 回复 分享
发布于 2023-10-25 20:07 湖北
#include <stdio.h> #include<math.h> int main() { float kg = 0.0; char ch = 0; int price = 20; scanf("%f %c", &kg, &ch); //输入kg 是否需要加急 if (kg >= 1 && ch == 'y') { price += (ceil(kg) * 1 - 1) + 5; // -1是减去默认的 } else if (kg >= 1 && ch == 'n') price += ceil(kg) - 1; else if (kg < 1 && ch == 'y') price += ceil(kg) - 1 + 5; printf("%d", price); return 0; }</math.h></stdio.h>
点赞 回复 分享
发布于 2023-10-25 20:06 湖北

相关推荐

07-28 16:15
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务