回复 9楼 wmf2014
如果输入的整数是数列中的数则得不到正确的结果,例如:数列中有数字9,当输入数字为9的时候得到的结果是7,9而不是7,23
2015-06-10 13:23
程序代码:if((a[i]>c&&a[i]<lamin)||lamin<c)lamin=a[i]; // // 由于||的两个操作数都没有修改值(没有副作用)。这个if的结果可以等效为 // if(lamin < c) lamin = a[i]; 找第一个不小于c的元素 // else if(c<a[i] && a[i]<lamin) lamin = a[i]; 找比c大比lamin小的元素 //

2015-06-10 15:10

2015-06-10 15:12

,这是稍加修改后的(借用了版主源代码哦
)
程序代码:#include <stdio.h>
int main()
{
int a,i,c,j,limax,lamin;//a[]={1,4,7,9,40,23,6,90};
int s[100];
printf("请输入整数个数:");
scanf("%d",&a);
printf("请输入%d个整数数:",a);
for(j=0;j<a;j++)
{
scanf("%d",&s[j]);
}
printf("请输入一个整数:");
scanf("%d",&c);
for(i=0,limax=lamin=s[0];i<a;i++)
{
if((s[i]>c&&s[i]<lamin)||lamin<=c)lamin=s[i];
if((s[i]<c&&s[i]>limax)||limax>c)limax=s[i];
}
printf("紧挨着%d的两个数是%d,%d\n",c,limax,lamin);
return 0;
}
2015-06-10 17:39