版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39216184/article/details/83003129
问题描述
小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。
输入格式
输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。
第二行包含n个正整数,依次表示每天的收盘价格。
输出格式
输出一个整数,表示这只股票这n天中的最大波动值。
样例输入
6
2 5 5 7 3 5
样例输出
4
样例说明
第四天和第五天之间的波动最大,波动值为|3-7|=4。
评测用例规模与约定
对于所有评测用例,2 ≤ n ≤ 1000。股票每一天的价格为1到10000之间的整数。
#include <stdio.h>
#define MAX(x, y) ((x > y) ? (x) : (y)) //老师值得学习的东西
int main(void){
int n, first, second, delta, maxval=0;
// 输入n,输第1个数
scanf("%d%d", &n, &first);
while(--n) {
// 输入第2至第n个数
scanf("%d", &second);
// 求差值(波动值),取绝对值,求最大值
delta = second - first; //边输入边求,不需要额外的保存
//求绝对值程序!
if(delta<0)
delta = -delta;
maxval = MAX(maxval, delta);
first = second;
}
// 输出结果
printf("%d\n", maxval);
return 0;
}
#include <iostream>
using namespace std;
int main(){
int n, first, second, delta, maxval=0;
// 输入n,输第1个数
cin >> n;
cin >> first;
for(int i=1; i<n; i++) {
// 输入第2至第n个数
cin >> second; //不断更新处,因为只需要一个一个的更新,所以第一个输入我放在循环外
// 求差值(波动值),取绝对值,求最大值
delta = second - first;
if(delta<0)
delta = -delta;
maxval = max(maxval, delta); //max内置函数
first = second;
}
// 输出结果
cout << maxval << endl;
return 0;
}