|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- int main()
- {
- int n,i,j,k,min=10000;
- int a[n];
- scanf("%d",&n);
- for(i=0;i<n;i++)
- {
- scanf("%d",&a[i]);
- }
- for(j=1;j<n;j++)
-
- for(k=0;k<j;k++)
- {
- if(a[k]==a[j])
- {
- min=0;
- }
- else if(a[k]-a[j]>0)
- {
- if(a[k]-a[j]<min)
- {
- min=a[k]-a[j];
- }
- }
- else if(a[j]-a[k]>0)
- {
- if(a[j]-a[k]<min)
- min=a[j]-a[k];
- }
- }
- printf("%d",min);
- return 0;
- }
复制代码
本帖最后由 jackz007 于 2022-10-22 22:35 编辑
这两句原来的顺序是错的,必须改过来,不然,在我这里用 gcc 编译后,运行时直接崩溃。
- scanf("%d" , & n) ;
- int a[n] ;
复制代码
运行结果似乎是对的
- D:\[00.Exerciese.2022]\C>x
- 5
- 1 4 8 3 12
- 1
- D:\[00.Exerciese.2022]\C>
复制代码
我写的代码,谨供楼主参考
- #include<stdio.h>
- int main()
- {
- int i , j , k , n , min ;
- scanf("%d" , & n) ;
- int a[n] ;
- for(i = 0 ; i < n ; i ++) scanf("%d" , & a[i]) ;
- min = (a[0] > a[1]) ? a[0] - a[1] : a[1] - a[0] ;
- for(i = 0 ; i < n - 1 ; i ++) {
- for(j = i + 1 ; j < n ; j ++) {
- k = (a[j] > a[i]) ? a[j] - a[i] : a[i] - a[j] ;
- if(k < min) min = k ;
- }
- }
- printf("%d\n" , min) ;
- return 0 ;
- }
复制代码
|
|