0 Daumen
381 Aufrufe

Was sollte ich hieram Code ändern?

Testfall 'Mathe_ausgabeVielfache_1_A_A':
Mathe.ausgabeVielfache(3,5);
// Pruefen der Ausgabe auf System.out


FEHLER: zuletzt erwarteter und tatsaechlich erhaltener Wert unterscheiden sich

erwartet:
................................
"3 6 9 12 15
"
................................
erhalten:
................................
"3 





12 

15 
"


TestSuite fehlgeschlagen :-(

public class Mathe {
public static String ausgabeVielfache(int a, int n) {
int b=1;
for(b=1;b<=n;b=b+1){
System.out.println(a * b + "  ");
if(b!=n){
System.out.println(" ");
}
}
return "Nächste Zahl";
}
Avatar von

1 Antwort

0 Daumen

Der Test erwartet, dass deine Zahlen in einer Zeile ausgegeben werden.


Dafür benötigt man:

System.out.print(...);

Mit

System.out.println(...);
Wird das auszugebene immer in eine neue Zeile "geschrieben".


Außerdem vermute ich das diese Zeile ebenfalls ein Problem bereitet (neben den println):

if(b!=n){
System.out.println(" ");
}
Da du hier nochmals, durch den Parameter " " ein Leerzeichen nach den Zahlen ausgibst.

Dies aber bereits hier getan hast:

System.out.println(a * b + " "); 
Du gibst also nach jeder Zahl 2 Leerzeichen und nicht 1 Leerzeichen aus.


Versuche also mal das println in print zu ändern und erst am Ende der for-Schleife eine neue leere Zeile (ohne Leerzeichen) auszugeben:

public class Mathe {
public static String ausgabeVielfache(int a, int n) {
int b=1;
for(b=1;b<=n;b=b+1){
System.out.print(a * b + " ");
}
System.out.println(); // Erst am Ende aller Zahlen ein neue Zeile
return "Nächste Zahl";
}

Mit

System.out.println(); 
Gibst du eine neue leere Zeile aus (bzw. einen Zeilenumbruch).
Avatar von

Mein Programm==>
public class Mathe {
public static String ausgabeVielfache(int a, int n) {
int b=1;
for(b=1;b<=n;b=b+1){
System.out.print(a * b);
System.out.print(" ");
}
System.out.println();
return "Nächste Zahl";
}


public static String ausgabe1x1(int n) {
int b=1;
int a=1;
Scanner sc= new Scanner(System.in);
n= sc.nextInt();
for(a=1; a<=n; a++){
for(b=1;b<=n;b = b+1){
System.out.print(a*b);
System.out.print(" ");
}
System.out.println();
}
return "Nächste Zahl";
}

}

   

Fehler==>

TestSuite 'Pre':
================================
Testfall 'Mathe_ausgabeVielfache_1_A_A':
OK
Testfall 'typ_A_A':
--------------------------------
FEHLER: falscher Rueckgabetyp von Methode 'ausgabeVielfache' in Klasse 'Mathe':
erwartet: void
erhalten: String
================================
TestSuite fehlgeschlagen :-(

.. was soll ich machen

import java.util.Scanner;

public class Mathe {
public static void ausgabeVielfache(int a, int n) {
int b=1;
for(b=1;b<=n;b=b+1){
System.out.print(a * b);
System.out.print(" ");
}
System.out.println();
}


public static void ausgabe1x1(int n) {
int b=1;
int a=1;
Scanner sc= new Scanner(System.in);
n= sc.nextInt();
for(a=1; a<=n; a++){
for(b=1;b<=n;b = b+1){
System.out.print(a*b);
System.out.print(" ");
}
System.out.println();
}
}

}

Testfall 'Mathe_ausgabeVielfache_1_A_A':
OK
Testfall 'typ_A_A':
OK
Testfall 'Mathe_ausgabe1x1_1_A_A':
Mathe.ausgabe1x1(5);
FEHLER IM GETESTETEN CODE:
java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at Mathe.ausgabe1x1(Mathe.java:21)
at TestSuite.test_Mathe_ausgabe1x1_1_A_A(TestSuite.java:47)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at common.TestCase.run(TestCase.java:70)
at java.base/java.lang.Thread.run(Thread.java:834)
................................
================================
TestSuite fehlgeschlagen :-(

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community