描述
给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。
输入一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。输出输出一行,表示序列的最大跨度值。
错误答案及解析:
#include<stdio.h>
int main()
{
int i,n,a=0,max=0,min=0,b; //此处应将min的初始值设为极值1000,以确保min最终取值为输入值中最小;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
if(a>=max)
{
max=a;
}
if(a<=min)
{
min=a;
}
}
b=max-min;
printf("%d",b);
return 0;
}
正解:
#include<stdio.h>
int main()
{
int i,n,a=0,max=0,min=1000,b;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a);
if(a>=max)
{
max=a;
}
if(a<=min)
{
min=a;
}
}
b=max-min;
printf("%d",b);
return 0;
}