给出n个正整数,要求找出相邻两个数字中差的绝对值最小的一对数字,如果有差的绝对值相同,则输出最前面的一对数。
输入:
包含2行,第一行为n,第二行是n个用空格分隔的正整数。
输出:
输出包含一行两个正整数,要求按照原来的顺序输出。
样例输入:
9
1 3 4 7 2 6 5 12 32
样例输出
3 4
C语言程序:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
int num,n,temp;
int i=0,flag=0;
int arr[10];
char c;
int *yu,*so;
while(1)
{
scanf("%d",&num);
c=getchar();
arr[i++]=num;
if(c=='\n')
{
break;
}
}
yu =(int *)malloc(sizeof(int)*num);
so=(int *)malloc(sizeof(int)*num);
i=0;
while(1)
{
scanf("%d",&n);
c=getchar();
yu[i++]=n;//记录输入的一维数组
if(c=='\n')
{
break;
}
}
for(i=0;i<num-1;i++)
{
so[i]=abs(yu[i]-yu[i+1]); //求相邻两数之差的绝对值
}
temp=so[0];
for(i=0;i<num-1;i++)
{
if(temp>so[i])//找到差的最小值
{
temp=so[i];
flag=i;
}
}
printf("%d %d",yu[flag],yu[flag+1]);//输出结果
system("pause");
return 0;
}