Ich habe eine Eingabeanweisung wie diese - "Erste Zeile enthält eine Ganzzahl, die die Testfälle 'T' bezeichnet. Jeder Testfall enthält einen ganzzahligen Wert, der die Größe von Array 'N' und darstellt N ganzzahlige Elemente sind mit Leerzeichen zwischen ihnen in der nächsten Zeile eingefügt "Eingabe lesen genau nummer im Leerzeichen getrennter Eingabewert
ich schreibe Code wie diesen -
Code 1:. -
t = int(input())
for i in range(t):
size = int(input()) # input size of array
numbers = list(map(int, input().split())
Problem - Array-Größe wird nicht verwendet, bedeutet, nehmen wir an, dass ich eingegeben Array-Größe ist 3 und ich füge Wert 1 2 3 4 5. es akzeptiert. Hier ist die Zahlengröße 5, aber es sollten nur 3 Größen akzeptiert werden.
Code 2: -
t = int(input())
for i in range(t):
size = int(input()) # input size of array
arr = []
for j in range(size):
num = int(input())
arr.append(num)
Problem - Hier bin ich in der Lage exaclty 3 Werte zu lesen (i: e Größe) aber beim Einfügen von Leerzeichen getrennt Wert wie 1 2 3, bekommt Valueerror.
-Code in Java: -
int n = sc.nextInt();
int[] arr = new int[n];
for(int i = 0; i < arr.length; i++){
int e = sc.nextInt();
arr[i] = e;
}
Hier geben wir entweder Leerzeichen getrennt Wert oder in neue Linie, es funktioniert gut.
Wie geht man damit um?
Wenn Sie zu viele/zu wenig Werte zu bekommen, was Sie tun sollten? Überprüfen Sie einfach 'if size! = Len (numbers):' und dann eine Exception auslösen/eine Fehlermeldung ausgeben, wenn Sie eine schlechte Eingabe erhielten –
@PatrickHaugh Ich wollte beschränken, um nur die angegebene Größe einzufügen. –
@PatrickHaugh bitte schlagen Sie in kompetitiver Programmierung vor, wie wir Input nehmen sollten. –