输出一个整数序列中最大的数和最小的数的差。
第一行为M,表示整数个数,整数个数不会大于10000;
第二行为M个整数,以空格隔开,每个整数的绝对值不会大于10000。
为什么数组内元素为输入的M时无法通过?
#include
#define SIZE 10001
int main()
{
int n,i,j,max=-SIZE,k,min=SIZE;
scanf("%d",&n);
int ar[n];//为什么此处为n无法通过,改为10001可通过
for(i=0;i
{
scanf("%d",&ar[i]);
if(max
{
max=ar[i];
}
if(min>ar[i])
{
min=ar[i];
}
}
printf("%d",max-min);
return 0;
}
无法通过是指编译报错吗?有些编译器支持这么写,有些不支持,只能用固定的值,写成 int ar[SIZE];
供参考:
#include <stdio.h>
#include <limits.h> //修改
#define SIZE 10001
int main()
{
int n, i, j, max = INT_MIN, k, min = INT_MAX; //修改
scanf("%d", &n);
int ar[SIZE]; //ar[n];//为什么此处为n无法通过,改为10001可通过 //修改
for (i = 0; i < n; i++)
{
scanf("%d", &ar[i]);
if (max < ar[i])
{
max = ar[i];
}
if (min > ar[i])
{
min = ar[i];
}
}
printf("%d", max - min);
return 0;
}