问题:数组中大小最接近的两个元素差 #include <search.h> #include <math.h> int cmp(const void*a,const void*b) { return *((int*)a)-*((int*)b); } int MyMethod( int a[] ) { qsort(a,5,sizeof(int),cmp); int min=a[1]-a[0]; for (int j=0;j<sizeof(a)/sizeof(int)-1;j++) { int temp=a[j+1]-a[j]; if (min>temp) { min=temp; } } return min; } int MyMethod1( int a[] ) { int min=99999; for (int j=0;j<=sizeof(a);j++) { for (int i=0;i<=sizeof(a);i++) { int temp=abs(a[j]-a[i]); if (min>temp&&temp!=0) { min=temp; } } } return min; } int _tmain(int argc, _TCHAR* argv[]) { int a[5]={410,330,340,5,33}; //scanf("%d",a[0]); //scanf("%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4]); for (int i=0;i<sizeof(a)/sizeof(int);i++) { printf("%d,",a[i]); } printf("\n"); for (int i=0;i<sizeof(a)/sizeof(int);i++) { printf("%d,",a[i]); } printf("\n"); int min=MyMethod1(a); printf("%d\n",min); return 0; }