教教我🙏🙏
零基础表示真的不会,抄过来的为啥出错呀
很菜,请指教(别大声嫌我蠢可以吗)
格式化一下,多余的括号删掉,少的就加上
【以下回答由 GPT 生成】
问题分析: 这段代码中的括号出错的原因是在while循环中缺少了一个大括号,导致循环内的代码块没有被正确包围起来。
解决方案: 在while循环的开始处添加一个左大括号 {
,在循环结束前的输出语句之后添加一个右大括号 }
。
修正后的代码如下所示:
import java.util.Scanner;
import java.util.Arrays;
public class Example {
public static void main(String args[]) {
int start = 0, end;
int a[] = {12, 45, 67, 89, 123, -45, 67};
int N = a.length;
int minIndex = -1;
for (int i = 0; i < N - 1; i++) {
minIndex = i;
for (int j = i + 1; j <= N - 1; j++) {
if (a[j] < a[minIndex])
minIndex = j;
}
if (minIndex != i) {
int temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
}
System.out.println(Arrays.toString(a));
}
Scanner scanner = new Scanner(System.in);
System.out.println("输入一个整数,程序将判断该整数是否在数组中:");
int number = scanner.nextInt();
int count = 0;
end = N;
int middle = (start + end) / 2;
while (number != a[middle]) {
if (number > a[middle])
start = middle;
else if (number < a[middle])
end = middle;
middle = (start + end) / 2;
count++;
if (count > N / 2)
break;
}
if (count > N / 2) {
System.out.printf("%d 不在数组中。\n", number);
} else {
System.out.printf("%d 在数组中。\n", number);
}
}
}
修正后的代码已经添加了缺少的大括号,现在应该可以正常执行了。
【相关推荐】
我把你的代码重新敲了一边,运行成功并显示输出结果,如下三图你参考一下: