头歌数组实训最大销售增幅简单理解代码
误区
很多人会误以为找出最大值和最小值进行做差,实际上要求是比较每一天销售份额与前面任意一天份额的差值,然后保留最大的差值。
代码
#include <iostream>
using namespace std;
// 函数maxIncrease:计算销售额增幅
// 参数:s-销售额数组,n-销售额数组长度,n>1
// 返回值:销售额最大增幅
int maxIncrease(int s[], int n);
int main()
{
int n, a[30], i; // 定义变量及数组,n-销售额个数,a-销售额数组
cin >> n; // 输入销售额数量,n>1
// 输入n个销售额,分别存入a[0]到a[n-1]
for(i = 0; i < n; i++)
cin >> a[i];
i = maxIncrease(a,n);
cout << "最大销售增幅为:" << i << endl;
return 0;
}
int maxIncrease(int s[], int n)
{
//请在此添加代码,实现函数maxIncrease
/********** Begin *********/
int up;
int max = 0;
for(int i = 1;i < n;i++)//去掉第一个天数,遍历销售份额
{
for(int x = 0;x < i;x++)//遍历第一次遍历之前的销售份额
{
up = s[i] - s[x];//进行做差
if(up > max)//比较每次做差的大小
{
max = up;//保留最大值
}
}
}
return max;//返回最大差值
/********** End **********/
}