程序代码
#include <stdio.h>
#include <stdlib.h>
/*
*csdn学院——2016级
*文件名称:Myfun9.c
*作者:小臣小仁
*完成日期:2016年10月25日
*问题描述:要求:小慧过生日,小明(小明真忙)要买鲜花送她。
*每枝红玫瑰5元,满5支送1枝,满20枝送5枝。
*小明一共有n(n>10)元钱,最多能买到多少?
*/
int main()
{
int iMoney,iNumflower;
printf("小明所需要支付的金额为:");
scanf("%d",&iMoney);
if(iMoney<25)
iNumflower=iMoney/5;
if(iMoney>=25&&iMoney<100)
iNumflower=(iMoney/25)*5+(iMoney%25)/5;
if(iMoney>=100)
iNumflower=(iMoney/100)*20+5*(iMoney/100)+((iMoney%100)/25)*5+((iMoney%100)/25)+((iMoney%100)%25)/5;;
printf("%d",iNumflower);
return 0;
}
输出结果
知识点总结:
分别用了3个if,那个条件满足就执行那句表达式,这里表达式里主要是靠取余%符号来把满足“满5支送1枝,满20枝送5枝”的条件找出来,通过表达式计算可以计算最多可买多少支玫瑰花。
心得体会
想了好长段时间才编出来的(对初学者的我确实比较费劲),但是看过贺老师的参考程序时写得非常简单,感觉自己的表达式过于繁琐(自己都感觉看不懂表达式),但贺老师说的贪心法确实没接触过,待会好好去网上查查