描述
给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。
输入
一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。
输出
输出一行,表示序列的最大跨度值。
这题的思路和上题基本一致(1.5? 05可以去看我的上一篇文章)
只是上一题只要最大值,而这一题还需要一个最小值
所以我们不妨在定义一个变量min用选择语句求出最小值
#include<stdio.h>
int main(){
int a,b,c,max=0,min=1000;//因为我们输入的值不会大于1000(题目要求)所以我们不妨设min初始值为1000
scanf("%d",&a);
for (b=1;b<=a;b++){
scanf("%d",&c);
if (c>=max){ //每次循环进行比较,得出最大值
max=c;
}
if (c<=min){ //每次循环进行比较,得出最小值
min=c;
}
}
printf("%d",max-min);//最大跨度值 = 最大值减去最小值
return 0;
}
#include<stdio.h>
int main(){
int a,b=1,c,max=0,min=1000;//因为我们输入的值不会大于1000(题目要求)所以我们不妨设min初始值为1000
scanf("%d",&a);
while(b<=a){
scanf("%d",&c);
if (c>=max){ //每次循环进行比较,得出最大值
max=c;
}
if (c<=min){ //每次循环进行比较,得出最小值
min=c;
}
b++;
}
printf("%d",max-min);//最大跨度值 = 最大值减去最小值
return 0;
}
|