本帖最后由 jackz007 于 2021-11-3 00:27 编辑
再测试一下这个代码呢?#include <stdio.h>
#include <stdlib.h>
int foo(int a , int b)
{
return (a > b) ? a - b : b - a ;
}
int main(void)
{
int * d , e , i , j , k , n ;
scanf("%d" , & n) ;
if(n > 1) {
if(d = (int * ) malloc(sizeof(int) * n)) {
for(i = 0 ; i < n ; i ++) scanf("%d" , & d[i]) ;
for(k = foo(d[1] , d[0]) , i = 0 ; i < n - 1 ; i ++) {
for(j = i + 1 ; j < n ; j ++) {
e = foo(d[j] , d[i]) ;
if(e < k) {
k = e ;
}
}
}
printf("%d\n" , k) ;
free(d) ;
} else {
fprintf(stderr , "内存分配失败!\n") ;
}
}
}
编译、运行实况:D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x < x.txt
14
D:\00.Excise\C>
看看运行时间是否超时 |