为什么总是错啊,验算也没发现什么错就是运行时只输出一部分
c语言吧
全部回复
仅看楼主
level 5
永雏呱呱 楼主
困扰好久了[泪]
2022年11月23日 15点11分 1
level 5
永雏呱呱 楼主
困扰了好久了[泪]
#include<stdio.h>
int main()
{
int n, m, i, left, right, mix;
scanf_s("%d", &n);
int a[100005] = { 0 };
for (i = 0; i < n; i++)//输入
scanf_s("%d", &a[i]);
scanf_s("%d", &m);
int b[10005] = { 0 };
for (i = 0; i < m; i++)
scanf_s("%d", &b[i]);
for (i = 0; i < m; i++)
{
right = n ;
left = 0;
if (b[i] >= a[n - 1])//排除超出和远小于的情况
printf("%d\n", a[n - 1]);
else if (b[i] <= a[0])
printf("%d\n", a[0]);
else
{
while (left < right)//二分法
{
mix = (right + left) / 2;
if (a[mix] < b[i])
left = mix+1;
else if (a[mix] > b[i])
right = mix ;
else
{
printf("%d\n", b[i]); return 0;
}
}
if (a[right] - b[i] < b[i] - a[right-1])
printf("%d\n", a[right]);
else
printf("%d\n", a[right-1]);
}
}
return 0;
}
2022年11月23日 15点11分 2
倒数十一行的return 0
2022年11月23日 16点11分
@生活不易 兔兔叹气 感谢感谢,我本来想,结束循环的,结果全结束了,谢谢
2022年11月23日 23点11分
level 5
永雏呱呱 楼主
程序太长发不出来只能发到评论里了
2022年11月23日 15点11分 3
level 5
永雏呱呱 楼主
[泪]怎么办

2022年11月23日 15点11分 4
1