注册 登录
编程论坛 C++教室

[求助]又麻烦一下大家

a8451727 发布于 2007-06-27 13:26, 614 次点击

如题:Rinky Dooflingy公司目前每月销售200份dooflingy,每份dooflingy有利润$300。该公司的广告上开销是每月$2000,如果公司在广告上的投入上加倍,销售额将会提升20个百分点。从公司目前的状况算起,连续加倍投入广告费用,直至利润“超过峰值”,就是说,开始降低。

请问一下大家:如何写循环的停止条件?
怎样在循环中拿出pay和前一次的pay做比较?


#include<iostream>
using namespace std;
void main()
{
int number=200,p=2000;
const int count=300;
double pay;

do{
if(p*=2)
{
number*=(1+0.2);
pay=number*count-p;
}
cout<<pay<<endl;
}
while(???);
}
9 回复
#2
a84517272007-06-27 16:04
大家帮忙
#3
weishj2007-06-27 16:24
#include<iostream>
using namespace std;
int main()
{
int number=200,p=2000;
const int count=300;
double pay=0.0,t; //用t记下前一次的pay
do
{
p*=2;
number*=(1+0.2);
t=pay;
pay=number*count-p;
if(pay>t)
cout<<pay<<endl;
}while(pay>=t);//当pay比前一次的pay大时一直循环,否则退出
return 0;
}
#4
野比2007-06-27 20:09
局部变量.. 如LS的t..
#5
a84517272007-06-27 20:39

嗯,谢谢了。
我也试过这样才问的,但我把 t=pay 放在 pay=number*count-p;后面,暴了个无限循环,晕。

#6
野比2007-06-27 21:57

t=pay放在前面是为了保存旧值...
你不觉得你那样t就没有意义了吗?

#7
a84517272007-06-27 22:18
以下是引用野比在2007-6-27 21:57:50的发言:

t=pay放在前面是为了保存旧值...
你不觉得你那样t就没有意义了吗?


我学这个的时间还不长,有很多细节都不懂呢。
错了过的地方,记忆才深刻点吧

#8
aipb20072007-06-27 22:42
加油!
#9
野比2007-06-27 22:45

慢慢来, 不要急 ... 基础打牢点

#10
a84517272007-06-27 23:46
呵呵 谢谢大家帮忙。



1