参考我们老师写的程序和优快云各大博主的思路,个人认为还是比较好理解的,欢迎大家积极讨论
#include<stdio.h>
int main(){
int n,a[100],b[100],i,j,temp,flag=0,max,min,d;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[i]=i+1;//b[i]为数字位置
}
for(i=0;i<n-1;i++)//冒泡排序
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
temp=b[i];
b[i]=b[j];
b[j]=temp;//位置也交换
}
}
}
d=a[1]-a[0];
for(i=1;i<n-1;i++)
{
if(a[i+1]-a[i]!=d)
{
flag=1;
break;
} //有一项差不相等,直接break
else
flag=0;
}
if(flag==1)
{
max=a[1]-a[0];
min=a[1]-a[0];
for(i=1;i<n-1;i++)
{
if(max<(a[i+1]-a[i]))
max=a[i+1]-a[i];
if(min>(a[i+1]-a[i]))
min=a[i+1]-a[i];
}
printf("%d %d",max,min);
}
else if(flag==0)
{
for(i=0;i<n;i++)
printf("%d ",b[i]);
}
return 0;
}