Maximum MinimumFunktion
-
int qsplatdrr::Volume_MaxMin () { int wv,hv,dv; // nicht initialisiert int w,h,d,v; Voxel vox; // ... vox.X = wv; // Zuweisung von nicht initialisierten Variablen vox.Y = hv; vox.Z = dv; // ...
Besser wäre wohl:
int qsplatdrr::Volume_MaxMin () { int wv = 0, hv = 0, dv = 0; // mit 0 initialisieren int w = 0, h = 0, d = 0, v = 0; Voxel vox; // ... vox.X = wv; vox.Y = hv; vox.Z = dv; // ...
Dann dürften die Warnings wegfallen.
// EDIT: auch zu langsam ...
-
Danke für eure hilfe, habe das problem jetzt so gelöst....ich hoffe, dass das so auch passt....gibt zumindest keine warnings oder errors mehr aus:
int qsplatdrr::Volume_MaxMin () { int wv,hv,dv; int w = 0, h = 0, d = 0, v = 0; Voxel vox; w = qsplatdrrVolume -> Width; h = qsplatdrrVolume -> Height; d = qsplatdrrVolume -> Depth; v = qsplatdrrVolume -> Value; for (wv=0; wv < w; wv++) { for (hv=0; hv < h; hv++) { for (dv=0; dv < d; dv++) { vox.X = wv; vox.Y = hv; vox.Z = dv; if (v > volIntMax){ v = volIntMax; } if (v < volIntMin) { v = volIntMin; } } } } return (volIntMax); return (volIntMin); }
-
Klar, wenn die Änderung an der Programmlogik so beabsichtigt war, passt das...
Ach, und nimm bitte [ cpp] Tags
-
return (volIntMin);
wird niemals erreicht!
-
und wie kann das umändern, dass es erreicht wird?
ps:sorry werd ab jetzt c++ tags verwenden
-
Hallo
Das sieh so aus, als willst du zwei Werte zurückgeben. Das geht aber nicht so, wei du das machst.
chrische
-
Gar nicht. Funktionen können nunmal nicht zwei Werte zurückgeben. Pack die beiden Werte doch als Referenz in die Parameterliste.
-
Devil's Daughter schrieb:
und wie kann das umändern, dass es erreicht wird?
ps:sorry werd ab jetzt c++ tags verwenden
gar nicht, beim Ersten return springte er aus der Funktion raus. Aber du könntest ein struct zurückgeben, welches die beiden ints wrappt.
MfG
GPC
-
Das einfachste wäre es auch, ein pair zurückzugeben:
#include <utility> std::pair<int,int> qsplatdrr::Volume_MaxMin() { ... return std::make_pair(volIntMax,volIntMin); } ... qsplatdrr splat; pair<int,int> extrem = splat.Volume_MaxMin(); cout<<"Max:"<<extrem.first<<", Min:"<<extrem.second<<endl;
-
oder mit referenzen arbeiten:
void qsplatdrr::Volume_MaxMin(std::pair<int,int> &ausgabe) { ... ausgabe.first = volIntMax; ausgabe.second = volIntMin; }
-
Super vielen Dank für eure Vorschläge!!!!