Komisches Verhalten in der Matrix
-
for(x=0; x<20; x++, Counter++) { Unterteilungsstellen = x / (double)20 * 4.0; // 20 Werte im Array und 20 * 0.2 = 4.0 Wertetabelle[x][y]=Unterteilungsstellen; printf("Unterteilungsstellen: %.2f\n",Unterteilungsstellen); printf(" Counter: %d\n",Counter); printf(" Werteintrag: %.2f\n\n",Wertetabelle[x][y]); }
-
Es werden aber nicht zwingend alle Werte im Array vollgeschrieben, daher verstehe ich die 20*4.0 nicht...
-
-Hier standen Unwahrheiten-
-
roflo schrieb:
Mit
int m[20][2]
deklarierst du ein Array mit der Größe 2, welches wiederum Arrays mit der Größe 20 enthält.
Nein,
m
ist ein Array von 20 Arrays à zweiint
s.
m[y]
bezeichnet entsprechend dasy
te Zweierarray, usw...
-
Habs grad getestet. Mein Leben beruht auf einer Lüge
-
Caligulaminus schrieb:
m[y]
bezeichnet entsprechend dasy
te Zweierarray, usw...richtig ist
das(y-1)
te Zweierarray
wenn y sich auf die Größe des Arrays bezieht.
-
-
Habs grad getestet. Mein Leben beruht auf einer Lüge
Kenn ich, ist mir gestern auch aufgefallen mit dem logischen &&
-
Mir gings nicht um &&.
-
Is mir schon klar....?
-
Naja wie auch immer
Was war denn jetzt genau dein Problem?
-
Was war denn jetzt genau dein Problem?
Jetzt nur noch das Schreiben des letztes Wertes in der Wertetabelle, denn
Es werden aber nicht zwingend alle Werte im Array vollgeschrieben, daher verstehe ich die 20*4.0 nicht...
x/20*4.0 ergibt halt etwas völlig anderes als ich da hineingeschrieben haben möchte
-
TocToc schrieb:
x/20*4.0 ergibt halt etwas völlig anderes als ich da hineingeschrieben haben möchte
Sorry, wenn das nicht deinen Werten entspricht.
Zunächst: So habe ich das nicht geschrieben.
Wenn du einen anderen Wertebereich haben möchtest, musst du die Werte anpassen.
Ich bin von 20 Werten mit 0.2 Breite ausgegangen. (20 * 0. 2 ist 4.0)
Wenn du nur 10 Werte haben möchtest, dann ändere die Schleife auf <= 10
(Das ändert dann aber nichts an dem 20*4.0)
-
Okay, verstanden, aber mir ist gerade eine andere Idee gekommen:
Ich runde den Wert für die Streifenbreite schon der for-Schleife auf vier Nachkommastellen ab (das war ja nur nen Auzug, die eigentliche Rechnung war ja anders).
Wie genau muss ich das nochmal machen...? lround() oder *1000 0.5...so genau weiß ich das nicht mehr...hat jmd nen Link für mich? Das Thema gabs doch schon mal hier oder?