最小差值程序哪里有问题
#include<stdio.h>int main()
{
int n,i,j,k,min=10000;
int a;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
}
for(j=1;j<n;j++)
for(k=0;k<j;k++)
{
if(a==a)
{
min=0;
}
else if(a-a>0)
{
if(a-a<min)
{
min=a-a;
}
}
else if(a-a>0)
{
if(a-a<min)
min=a-a;
}
}
printf("%d",min);
return 0;
}
本帖最后由 原来是我错付了 于 2022-10-22 22:16 编辑
我自己发现错误了 本帖最后由 jackz007 于 2022-10-22 22:35 编辑
这两句原来的顺序是错的,必须改过来,不然,在我这里用 gcc 编译后,运行时直接崩溃。
scanf("%d" , & n) ;
int a ;
运行结果似乎是对的
D:\\C>x
5
1 4 8 3 12
1
D:\\C>
我写的代码,谨供楼主参考
#include<stdio.h>
int main()
{
int i , j , k , n , min ;
scanf("%d" , & n) ;
int a ;
for(i = 0 ; i < n ; i ++) scanf("%d" , & a) ;
min = (a > a) ? a - a : a - a ;
for(i = 0 ; i < n - 1 ; i ++) {
for(j = i + 1 ; j < n ; j ++) {
k = (a > a) ? a - a : a - a ;
if(k < min) min = k ;
}
}
printf("%d\n" , min) ;
return 0 ;
}
页:
[1]