Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage zum Programmieren


von Timo T. (killerbiene007)


Lesenswert?

Hi Leute kann mir irgendwer vieleicht sagen was an diesem Test-Programm 
in Java der Fehler ist?

int a, b, c, max;
  a = In.readInt();b = In.readInt();c = In.readInt();
  if (a > b)
    if (a > c)
      max = a;
    else
      max = c;
  else
    if (b > c)
      max = b;
    else
      max =c;
  Out.printIn(max);

von Martin (Gast)


Lesenswert?

Da bist du hier im falschen Forum denke ich. Und was sollte den das 
Progrämmchen machen?

von Timo T. (killerbiene007)


Lesenswert?

Es sollte bei einer Eingabe von 3 Zahlen die größte wieder ausgeben

von holger (Gast)


Lesenswert?

Gibt es in Java keine Klammern ?
Man weiss ja gar nicht wo die if/else aufhören.
So zum Bleistift:

  if (a > b)
  {
    if (a > c)
      max = a;
    else
      max = c;
  }
  else
  {
    if (b > c)
      max = b;
    else
      max =c;
  }

von Dussel (Gast)


Lesenswert?

Klammer braucht man bei einzeiligen if nicht, zumindest in C++, auf dem 
Java aufbaut. Logisch scheint das Programm richtig zu sein. Was macht es 
denn (nicht), was macht es anders als es sein sollte? In der letzten 
zeile steht PrintIn. Ist das richtig oder sollte es PrintInt heißen? 
Kenne mich mit Java nicht aus.

von Markus V. (valvestino)


Lesenswert?

Hallo Timo,

nachdem Du Dich beharrlich weigerst, mal zu erzählen, was genau Dein 
Problem ist, werde ich mal die berühmte Glaskugel bemühen.

Dein "Programm" ist alles mögliche, aber kein vollständiges 
Java-Programm. Hier mal eine lauffähige Variante:
1
import java.io.*;
2
public class Max {
3
  public static void main( String[] args ) {
4
  int max = 0;
5
  int a = readInt();
6
  int b = readInt();
7
  int c = readInt();
8
  if (a > b)
9
      if (a > c)
10
          max = a;
11
      else
12
          max = c;
13
  else
14
      if (b > c)
15
          max = b;
16
      else
17
          max =c;
18
  System.out.print("max: ");
19
  System.out.println(max);
20
  }
21
  private static int readInt() {
22
    int retval = 0;
23
    try {
24
      byte[] buffer = new byte[32];
25
      int len = System.in.read(buffer);
26
      retval = Integer.parseInt(new String(buffer).trim());
27
    }
28
    catch ( IOException e ) {
29
      System.out.println(e);
30
      retval = 0;
31
    }
32
    catch ( NumberFormatException e ) {
33
      System.out.println(e);
34
      retval = 0;
35
    }
36
    return retval;
37
  }
38
};

Speichere den Source-Code in "Max.java". Compiliere es in einer DOS-Box 
mit "javac Max.java". Dann kannst Du es mit "java Max" starten. Wenn 
Windows mault, daß es weder "javac" noch "java" finden kann, mußt Du 
Deine path-Umgebungsvariable noch auf Dein JDK\bin-Verzeichnis 
erweitern.

Gruß
Markus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.