最大值和最小值的差
时间限制: 1s 内存限制: 128MB 提交: 473 解决: 305
题目描述
输出一个整数序列中最大的数和最小的数的差。
输入格式
第一行为M,表示整数个数,整数个数不会大于10000;
第二行为M个整数,以空格隔开,每个整数的绝对值不会大于10000。
输出格式
输出M个数中最大值和最小值的差。
样例输入
复制
5 2 5 7 4 2
样例输出
复制
5
#include<stdio.h>
int main(){
int a[10000];
int i,j,n,m;
int max=0;
int min=0;
int y,o;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
a[max]=a[0];
for(i=1;i<n;i++){
if(a[i]>a[max]){
a[max]=a[i];
}
y=a[max];
}
a[min]=a[0];
for(i=1;i<n;i++){
if(a[i]<=a[min]){
a[min]=a[i];
}
o=a[min];
}
printf("%d",y-o);
}
此题有两个点需要谨慎,第一个就是最后的max减min那里,不能用a[max]直接减去a[min],这样数据容易重复混乱,结果不对,所以设置了一个y,o变量。
第二个是上个题写的时候发现的问题,题目说了内存限度,所以就要把数组储存的限度扩大,所以a[10000].