任务的本质是这样的:
在输入处,第一行包含一个自然数 N——居民人数(N ≤ 100)。接下来的 N 行包含有关所有居民的信息:每行包含两个整数:V 和 S – 人的年龄和性别(1 ≤ V ≤ 100,S – 0 或 1)。男性对应值S=1,女性对应S=0
输出应包含列表中最年长的男性的数量。如果有多个这样的租户,则打印最小的数字。如果没有男性居民,则打印 -1。
Scanner in = new Scanner(System.in);
int number = in.nextInt();
int[] citizen = new int[number]; // 25 70 100 3
int[] gender = new int[number]; // 1 1 0 1
int max = 0, Index = 0, male = 0;
for (int i = 0; i < citizen.length; i++) {
citizen[i] = in.nextInt();
gender[i] = in.nextInt();
}
for (int i = 0; i < citizen.length; i++) {
if(citizen[i] > max && gender[i] == 1){
max = citizen[i];
Index = i+1; // Нахождение индекса самого старого мужчины
}
if (gender[i] == 0){ // Проверка на наличие мужчин
male = 0;
}
else male++;
}
if (male == 0) System.out.println("-1");
else System.out.println(Index);
一切都在编译器中正常工作,但机器人不接受测试代码,它没有通过第四次测试,数字和通过哪些测试不知道,我一直在摆弄这个任务很长时间,我不明白这里有什么问题?请帮忙。
毕竟这是由于值选项的原因,我看不懂\u200b\u200bhe用的是什么值,以至于程序没有给出正确答案。
为什么这么难?为什么需要这些数组?即时计数
特别是在您的代码中,错误就在这里
如果一个女人最后来了怎么办?
如果您已经进行了检查(尽管我表明不需要),那么应该是这样的