题目描述
你在读的经营课程上,老师布置了一道作业。在一家公司的日常运营中,是会对一些商品的价格走势根据一些经验和数据进行预估,并据此进行决策。例如,假设某商品每天的价格都有可能变动,我们要做的就是低买高卖获得最高利润。比如假设我们预估该商品接下来七天内的价格走势如下: 4 1 2 3 6 4 8 那我们采取的最佳策略是在价格1块钱的时候买入,在价格8块钱的时候卖出。为了简化整个过程,我们限定在此周期内只能有一次买入一次卖出,且商品在没有购入前是无法卖出的,即该商品不是期货而是现货。 现要求你用程序来实现自动决策。输入一定天数的商品预估价格,自动计算出最优利润值。例如,上面的例子中,最优利润值为8-1=7。(简单起见,只考虑0-100000之间的整数价格)
输入描述:
输入一个数组,分别表示各天的预估价格
输出描述:
根据输入的预估价格,算出并输出最优的利润值。
示例
示例1
输入
4 1 2 3 6 4 8
输出
7
完整代码如下:
#include <stdio.h>
int a[7],b[7];//定义成全局变量方便函数调用
// 函数Findthebest 找数组a对应元素的最大差值,并把结果储存在b数组中
void Findthebest()
{
int i,j;
for(i=0;i<7;i++){
int max=i;
for(j=i;j<7;j++){
if(a[max]<a[j]){
max=j;
}
}
b[i]=a[max]-a[i];
}
}
int main()
{
for(int i=0;i<7;i++){
scanf("%d",&a[i]);
}
Findthebest();
int max=0;//找b[i]中的最大值
for(int i=0;i<7;i++){
if(b[max]<b[i]){
max=i;
}
}
printf("%d\n",b[max]);
return 0;
}