Java Code Methode < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Aufgabe | JAVA: Eine Methode um aus einer Reihe von Zahlen den größten "Zahlenzwilling" zu finden.
(z.B. 2,3,3,5,1,7,7; Ergebnis ist 7) |
Hallo!
Hab eine Methode gefunden, die das Problem löst. Leider funktioniert es aber nicht für negative Zahlen (hab aber Integer verwendet). ??
Ist die Stelle "if (twinfinder (zahl, lastzahl))" gut gelöst?
import java.util.Scanner;
public class main {
static int max = 0;
static int zahl = 0;
static boolean twinfinder (int a, int b)
{
if (a == b)
{
return true;
}
else
return false;
}
public static int maxfinder (int a)
{
if (a > max)
{
max = a;
}
return max;
}
public static void main(String[] args) {
int zahl = 0;
int lastzahl = 0;
Scanner sc = new Scanner(System.in);
do
{
System.out.print("Bitte gib eine weitere Zahl [mm] ein\n");
[/mm]
zahl = sc.nextInt();
if (twinfinder (zahl, lastzahl))
{
maxfinder (zahl);
}
lastzahl = zahl;
}
while (sc.hasNextInt());
System.out.println (max);
}
}
|
|
|
|
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Hallo martin_vie,
> JAVA: Eine Methode um aus einer Reihe von Zahlen den
> größten "Zahlenzwilling" zu finden.
> (z.B. 2,3,3,5,1,7,7; Ergebnis ist 7)
> Hallo!
>
> Hab eine Methode gefunden, die das Problem löst. Leider
> funktioniert es aber nicht für negative Zahlen (hab aber
> Integer verwendet). ??
>
Da musst Du eine zusätzliche Variable einbauen,
die die Anzahl der Schleifendurchläufe angibt.
Die Abfrage mit if (twinfinder (zahl, lastzahl))
ist erst ab dem zweiten Schleifendurchlauf auszuführen.
Beim ersten Schleifendurchlauf hingegen ist die Variable max zu setzen.
> Ist die Stelle "if (twinfinder (zahl, lastzahl))" gut
> gelöst?
>
Ja.
>
> import java.util.Scanner;
>
> public class main {
>
> static int max = 0;
> static int zahl = 0;
>
> static boolean twinfinder (int a, int b)
> {
> if (a == b)
> {
> return true;
> }
> else
> return false;
> }
>
Diese Methode würde ich etwas anders schreiben:
1: |
| 2: | static boolean twinfinder (int a, int b)
| 3: | {
| 4: | if (a == b)
| 5: | {
| 6: | return true;
| 7: | }
| 8: | return false;
| 9: | }
|
Eine andere Variante, die ohne if-Abfrage auskommt ist:
1: |
| 2: | static boolean twinfinder (int a, int b)
| 3: | {
| 4: | return (a == b);
| 5: | }
| Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
>
> public static int maxfinder (int a)
> {
> if (a > max)
> {
> max = a;
> }
> return max;
> }
>
> public static void main(String[] args) {
>
> int zahl = 0;
> int lastzahl = 0;
>
> Scanner sc = new Scanner(System.in);
>
> do
> {
> System.out.print("Bitte gib eine weitere Zahl [mm]ein\n");[/mm]Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
> zahl = sc.nextInt();
> if (twinfinder (zahl, lastzahl))
> {
> maxfinder (zahl);
> }
> lastzahl = zahl;
> }
> while (sc.hasNextInt());
>
> System.out.println (max);
> }
> }
Gruss
MathePower
|
|
|
|