#include"stdio.h" 
#define Price 3 
void main() 
{int b=0,ffprize,ssprize,ttprize,sum=0,c,fffprize,sssprize,tttprize,Money=30000; 
double
  fprize,sprize,tprize; 
while((b+Money)/Price) 
{sum=sum+Money/Price; 
c=(int)(b+Money)/Price; 
b=(b+Money)%Price; 
fprize=(b+Money)/Price*0.0001; 
sprize=(b+Money)/Price*0.001; 
tprize=(b+Money)/Price*0.3; 
ffprize=(int)fprize; 
ssprize=(int)sprize; 
ttprize=(int)tprize; 
fffprize=ffprize*4000; 
sssprize=ssprize*1600; 
tttprize=ttprize*3; 
Money=fffprize+sssprize+tttprize; 
} 
printf("sum is %d\n",sum); 
}
其实问题很简单
   就是钱变为绿茶
  一部分绿茶变为钱
   再用钱买绿茶
  直到钱不够买一瓶时
我用的变量比较多
  主要是为了类型转换
  实际问题中 中一等奖的期望若<1,则记为零。其他的也是
  我把中的再来一瓶换成是3元,并不影响结果,因为这一部分总可被三整除。sum是统计买的瓶数。
其他的自己看吧
  这个好懂
  问题看起来比较复杂
  仔细分析一下也不是太难。就这些。