# Summe produkt von einem array



## Unkownsyntax (23. Mrz 2009)

Hi hab da mal ne frage und zwar soll die summe von einem Array bestimmen wobei ich die zwei größten zahlen des array verwenden soll hier mal wie ich mir das gedacht habe und ob es so gehen würde habs nicht 

```
int [] a= {2,3,6,8,56,-12,789}  //arrayzahlen als beispiel soll mit ganzen int funktionieren;
int max1=0;
int max2=0;
int summe;

for(int i =0; i<a.length;i++){
if(max1<a[i]){
max2=max1;
max1=a[i];}}

Summe=max1+max2;
```

für verbesserungen des codes steh ich gern zu verfügung 

Und ich hätte noch eine Aufgabe wo ich das kleinstmögliche produkt bilden soll da ist es bisschen schwieriger da hab ich noch ned wirklich eine idee dazu weil z.b.:

 f = -2, -5, 3, 7, 9, 1    Array
Ergibt das kleinste produkt ja -5 und 9 = -45 hier wär es die größte und kleinste zahl aber bei nur positiven zahlen wärn es ja die zwei kleinsten zahlen....

bitte um hilfe danke


----------



## 0x7F800000 (23. Mrz 2009)

Unkownsyntax hat gesagt.:


> Hi_hab da mal ne frage_und zwar soll die summe von einem Array bestimmen_wobei ich die zwei größten zahlen des array verwenden soll_hier mal wie ich mir das gedacht habe_und ob es so gehen würde habs nicht



geht's noch?  Kommt deine Muttersprache aus der sinotibetischen Sprachfamilie oder wie? :bahnhof:
 
Dein Java-Code sieht übrigens auch eher nach einem lisp-derivat aus, was hast du denn da mit der Klammerung gemacht...?


----------



## Ebenius (23. Mrz 2009)

Andrey, der Nutzername hat Dich doch gewarnt.


----------



## Marco13 (23. Mrz 2009)

Beim ersten Teil kann man noch drüber philosophieren, ob die Summe der Größten Zahlen bei einem Array wie
[1,2,2]
nun 4 oder 3 ist (der Unterschied zwischen < und <=...)

Beim Zweiten: Alle Zahlenpaare durchgehen, jeweils das Produkt ausrechnen, und gucken, ob's das kleinste bisherige Produkt ist - wenn ja, die beiden Zahlen speichern.


----------



## 0x7F800000 (23. Mrz 2009)

Wie, was, welcher Nutzername? 

(<_<)

(>_>)

(ó_Ò)?

(*_*) 
Achsoo, der Nutzername! Den habe ich nicht bemerkt, ich war zu sehr damit bechäftigt den ersten Satz des beitrags 17 Mal durchzulesen^^
Außerdem hat er auch im namen einen Fehler, es sollte "UnknownSyntax" heißen^^ :autsch:


----------



## 0x7F800000 (23. Mrz 2009)

Marco13 hat gesagt.:


> Beim ersten Teil kann man noch drüber philosophieren, ob die Summe der Größten Zahlen bei einem Array wie
> [1,2,2]
> nun 4 oder 3 ist (der Unterschied zwischen < und <=...)


Den code hast du dir nicht angeguggt, denke ich mal?
[highlight=Java]
public class _ {
    public static void main(String..._){
        int [] a= {5,4,3,2,1,0};  //arrayzahlen als beispiel soll mit ganzen int funktionieren;
        int max1=0;
        int max2=0;
        int summe;

        for(int i =0; i<a.length;i++){
        if(max1<a_){
        max2=max1;
        max1=a;}}

        summe=max1+max2;

        System.out.println(summe);
    }
}
[/highlight]
hier ist der code nochmal, nur im ausführbaren Zustand und mit einem anderen Array.
Ausgabe: 5
Gibt's da noch irgendwas zu philosophieren?  Der code ist nicht nur unformatiert und syntaktisch inkorrekt, der berechnet auch noch irgendwas vollkommen Sinnfreies._


----------



## Marco13 (23. Mrz 2009)

Ich hab' versucht, ihn mir anzugucken, aber dann habe ich eine UnknownSyntaxException geworfen.


----------



## Unkownsyntax (23. Mrz 2009)

Danke habs e schon geschafft  Ja sry wir müssen den nicht in Java abgeben sondern in so ne art wie java aber halt eher sprachlich deswegen hab ich ihn gar nicht in rechner reingetippt und gschaut ob alles geht und sitzt


----------



## 0x7F800000 (23. Mrz 2009)

Achsoo. Ja, Pseudocode ist eine gute Sache. Aber wenigstens am beispiel [2,1] hättest du dein erstes Algo auch gedanklich testen können.


----------



## ARadauer (24. Mrz 2009)

also konkret, die zwei größten zahlen suchen... 
wenn die aktuelle zahl größer ist als die größte ... bekommt die zweit größte den wert der größten und die größte den aktuellen wert...

was ist aber wenn die aktuelle zahl größer ist als die zweitgrößte und kleiner als die größte? den case musst du auch noch abdecken


wie macht man das jetzt mit den anfangswerten?
wenn du die größte suchst sollte der anfangswert möglichst klein sein... 0 ist das nicht
wenn du die kleinste suchst sollte der anfangswert möglichst groß sein 999 ist das auch nicht...

besser:
      int max = Integer.MAX_VALUE;
      int min = Integer.MIN_VALUE;


----------

