用C语言完成:新学期家长给小孩子买铅笔,买的越多越便宜·购买5支以下每支1.0元,买5支(含5支,下同)以上0.9元,买10支以上每支0.8元,20支以上每支0.6元编程输入购买铅笔的数量输出应付的钱数,需保留2位小数
时间: 2023-03-11 07:18:51 浏览: 256
按照题目要求,下面是用C语言实现的程序:#include<stdio.h>
int main()
{
double price = 0.0;
int count;
printf("请输入购买的铅笔数量:");
scanf("%d", &count);
if (count <= 5)
{
price = count * 1.0;
}
else if (count <= 10)
{
price = 5 * 1.0 + (count - 5) * 0.9;
}
else if (count <= 20)
{
price = 5 * 1.0 + 5 * 0.9 + (count - 10) * 0.8;
}
else
{
price = 5 * 1.0 + 5 * 0.9 + 10 * 0.8 + (count - 20) * 0.6;
}
printf("应付的钱数为:%.2lf\n", price);
return 0;
}
相关问题
每支钢笔5元,每支签字笔3元,每3支铅笔1元。如果要用M元钱买 N 支笔,要求每种笔至少买一个,编程求各种笔各能买多少支?c语言代码
这个问题可以用贪心算法和条件判断来解决,先尽可能多地购买最便宜的物品——铅笔,然后用剩余的钱购买钢笔和签字笔。以下是简单的C语言代码示例:
```c
#include <stdio.h>
int main() {
int M = 0; // 总金额
int N = 0; // 笔的总数
int pencils = 0, pens = 0, markers = 0;
// 钱不够直接返回错误
if (M < N * 5 + N * 3) {
printf("无法购买这么多笔。\n");
return 0;
}
// 先买铅笔,直到不能再买
while ((pencils % 3 == 0 || M >= 3) && M >= pencils + 3 * pens + 5 * markers) {
pencils++;
M -= 3;
}
// 然后买钢笔和签字笔,直到没剩多少钱
pens = M / 5;
markers = N - pencils - pens;
printf("可以买%d支铅笔,%d支钢笔,%d支签字笔。\n", pencils, pens, markers);
阅读全文