C Position größte/niedrigste Zahl im Feld anzeigen?

Isokrates

Newbie
Registriert
Juni 2017
Beiträge
3
Hallo zusammen

ich muss für die FH ein Programm schreiben, wo man nach Eingabe von Zahlen, die größte und niedrigste Zahl mit samt Position ausgegeben bekommt. Ich bin soweit, dass ich die größte bzw. niedrigste Zahl ausgegeben bekomme, aber es will mit der Position nicht klappen..
Kann mir hier einer von euch helfen?

Danke schon einmal im voraus :)
 

Anhänge

  • 34d1094cab0413657da2c3aef14e1561.png
    34d1094cab0413657da2c3aef14e1561.png
    36,6 KB · Aufrufe: 334
wert und i[wert] sind identisch. Was Du brauchst, ist wert (hast Du schon) und i selbst.
 
blöderidiot schrieb:
wert und i[wert] sind identisch.


Wirklich? Kannst mir das bitte erklären? wert ist doch das Array mit den eingegebenen Zahlen und i lediglich die Laufvariable. Ein Stichwort zum Nachschlagen reicht mir auch.

BTW: Überprüf mal noch die Ausgabe der Positionen. Wenn ich das richtig sehe, kann es da zu Problemen kommen.
 
Zuletzt bearbeitet:
kaputt.c:6:38: error: subscripted value is neither array nor pointer nor vector
printf("mein wert: %d, wert+1 %d", i[0], i[1]);

was anderes:

wenn du den nutzer fragst, wieviele eingaben er machen möchte und das sind sagen wir 55.
Dein Feld ist aber nur 50 groß... könnte das ein problem geben ;-)

Leg das Feld am besten erst an nachdem der Nutzer eingegeben hat wieviel er eingeben möchte.
 
aroxx schrieb:
kaputt.c:6:38: error: subscripted value is neither array nor pointer nor vector
printf("mein wert: %d, wert+1 %d", i[0], i[1]);
Ehrlich Leute, Ihr müßt schon mal genauer hinsehen in der Programmiererei. Ich schrob i[wert] und nicht i[0].
 
JaKno schrieb:
Wundere mich sowieso, dass C noch gelehrt wird. Am sinnvollsten ist es mit Java zu beginnnen, rein objektorientiert, keine Altlasten wie bei C++

Öhm...Embedded?

blöderidiot schrieb:
Ehrlich Leute, Ihr müßt schon mal genauer hinsehen in der Programmiererei. Ich schrob i[wert] und nicht i[0].

Ich kapier es trotzdem noch nicht.
 
chillking schrieb:
Ich kapier es trotzdem noch nicht.

wert und i[wert] sind in C syntactic sugar für *(wert+i), wobei die Klammern [..] eine Speicheradresse links oder innerhalb akzeptieren. Der Nicht-Adress-Ausdruck wird als Offset auf die Adresse aufgerechnet.
Code:
a = wert[i];
b = i[wert];
c = 0[wert+i];
d = -1[wert+i+1];
 
JaKno schrieb:
es muss sein
minstelle = i;
maxstelle = i;

Also wenn ich das in der for Schleife nach der If Anweisung mache, gibt der mir jedes mal für min und max meine Anzahl der Werte - 1 aus.
Egal wo ich es so schreibe, es kommt entweder maxstelle/minstelle = meine anzahl oder anzahl-1 raus
 
blöderidiot schrieb:
wert und i[wert] sind in C syntactic sugar für *(wert+i), wobei die Klammern [..] eine Speicheradresse links oder innerhalb akzeptieren. Der Nicht-Adress-Ausdruck wird als Offset auf die Adresse aufgerechnet.
Code:
a = wert[i];
b = i[wert];
c = 0[wert+i];
d = -1[wert+i+1];


Ahhhh jetzt. Okay danke!
Wundert mich aber trotzdem, dass das kein Fehler ergibt, man greift ja schließlich auf Speicheradressen außerhalb der Variable zu.
Aber ne geile Sache hinsichtlich der Lesbarkeit :D
 
Natrürlich kommt das raus, wenn du die Zuweisung in jeder Iteration durchführst. Das ist ehrlich gesagt offensichtlich.

Die Antwort steckt bereits in Post #4.

i[wert] ist keinesfalls Syntax für "das i, das zu Wert gehört".

Und für alles andere solltest du dir deine Logik noch einmal überdenken.
Geh weg von C und schreib es dir als Pseudocode auf Papier auf.
Mehr kann man da wirklich nicht sagen.

@chillking
Wieso sollte man da auf ungültige Speicheradressen zugreifen? Es ist einfach nur eine andere Schreibweise. Mir persönlich gefällt sie nicht so, weil ich zu Beginn immer nur die array[index]-Schreibweise gesehen hatte.
 
Zuletzt bearbeitet:
So habs jetzt hinbekommen. Danke für die hilf- bzw. zahlreichen Kommentare :)
 
simpsonsfan schrieb:
@chillking
Wieso sollte man da auf ungültige Speicheradressen zugreifen? Es ist einfach nur eine andere Schreibweise. Mir persönlich gefällt sie nicht so, weil ich zu Beginn immer nur die array[index]-Schreibweise gesehen hatte.

Dachte, es wird überprüft, ob man mit dem Zugriff auf ein Element eines Arrays innerhalb des Arrays bleibt. Also ob wert[5] noch zu wert gehört, oder ob wert weniger als 6 Elemente besitzt.
 
Zurück
Oben