描述
给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。
输入
一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。
输出
输出一行,表示序列的最大跨度值。
样例输入
6 3 0 8 7 5 9
样例输出
9
问题分析:通过循环找出最大值,设立一个中间值不断交换数组中元素的次序,则可在最终找到最大值的同时将最小值锁定为第一个元素,也就是a[0].
源代码:
#include <iostream> using namespace std; int main() { int n,i,j,t; int a[1005]; cin>>n; for(i=0;i<n;i++) cin>>a[i]; for(j=0;j<n-1;j++) { for(i=0;i<n-j-1;i++) { if(a[i+1]<a[i]) { t=a[i+1]; a[i+1]=a[i]; a[i]=t; } } } cout<<a[n-1]-a[0]; return 0; }