就在我开始惹恼你之前,我是一个Java初学者,我最新的主要问题是两维更多维数组。
让我来代表我的问题:
研究中的任务是:您有一个已排序的数组,然后您键入程序应该执行的搜索操作数(让它们由N
命名)的数量。
因此,您输入N x 2
个不同的值a
和b
,a
应小于b
。
程序应在已排序的数组中搜索包含a
和b
的intervall,并打印出这些intervalls。
例如:
要搜索的数组如下所示:
[1, 3, 5, 7, 9]
然后用户输入操作数,例如3.对此a
和b
对夫妻:
3 6
2 9
1 5
该计划的输出应该符合这些a
和b
对夫妇:
3 7
1 9
1 5
我试图掌握这个练习,但如上所述,我遇到了多维数组的问题。在下面你可以看到我的代码,我只想要关于数组的tipps或特定信息,以了解它们是如何工作的。 我改进了它:
import java.util.*;
public class Blatt9{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
boolean check1 = false;
int N = s.nextInt();
int[] array = new int[N];
for(int i = 0; i < array.length; i++){
array[i] = s.nextInt();
}
for(int j = 0; j < array.length; j++){
for(int k = j+1; j < array.length -1; j++){
if(array[j] < array[k]){
check1 = true;
}
else{
check1 = false;
}
}
}
if(check1){
System.out.println("nicht aufsteigend sortiert");
}
else{
System.out.println("korrekt");
}
//Beginn der eigentlichen Aufgabe
int abfragen = s.nextInt(); // Anzahl der Abfragen
int[][] arr = new int[abfragen][2]; //um die abfragen zu speichern
int a = 0;
int b = 0;
for(int i = 0; i < abfragen; i++){
a = s.nextInt();
b = s.nextInt();
if(a>b){
System.out.println("Zahl 1 muss kleiner Zahl 2 sein");
break;
}
arr[i][0] = a;
arr[i][1] = b;
}
int intervall1 = 0;
int intervall2 = 0;
for(int i = 0; i < array.length; i++){
for(int j = 0; j < arr.length; j++){
if(array[i] <= a){
intervall1 = a;
}
if(array[i]>= b){
intervall2 = b;
}
}
System.out.print(intervall1 + " " + intervall2);
System.out.println();
}
}
}
现在的输出是:
输入:
5
1 3 5 7 9
korrekt
3
3 6
2 9
1 5
开始输出:
1 0
1 0
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5
1 5