Я добавляю в цикл for для поиска значений min и max в массиве, который я получаю от разбора текстового файла. Найти максимальное значение было достаточно просто, но для min я получаю нулевое значение, где оно должно быть 1. Вот что я использую для цикла - (я до сих пор тестирую только, чтобы получить min temp. x)добавление скрипта для поиска значения min для цикла for C#
for (int i = 0; i < lineCount; i++) {
string line = dataLines [i];
lineValues = line.Split (' ');
Vector4 temp = new Vector4();
Vector3 center = new Vector3();
temp.x = float.Parse (lineValues [0]);
maxvalueX = float.MinValue;
minvalueX = float.MaxValue;
if (temp.x > maxvalueX) { maxvalueX = temp.x; }
if (temp.x < minvalueX) { minvalueX = temp.x; }
temp.y = float.Parse (lineValues [1]);
if (temp.y > maxvalueY) { maxvalueY = temp.y; }
temp.z = float.Parse (lineValues [2]);
if (temp.z > maxvalueZ) { maxvalueZ = temp.z; }
temp.w = float.Parse (lineValues [3]);
data.myData [i].Set (scaleFactor*temp.x, scaleFactor*temp.y, scaleFactor*temp.z, temp.w);
data.myData [i].Set (scaleFactor*temp.x, scaleFactor*temp.y, scaleFactor*temp.z, temp.w);
//int value = data.myData [i].x;
center.x = ((maxvalueX-1)/2);
center.y = ((maxvalueY-1)/2);
center.z = ((maxvalueZ-1)/2);
data.dataCenter.Set (scaleFactor*center.x, scaleFactor*center.y, scaleFactor*center.z);
}
любые идеи о том, что происходит не так здесь, будем очень благодарны! Спасибо! Джен
Что вы инициализация значений min до? Как правило, вы хотите установить их как 'float.MaxValue'. Если вы не инициализируете их, то по умолчанию они будут 0, что меньше 1. У вас будет такой же тип проблемы с max, если все ваши значения были отрицательными, поэтому он действительно должен быть инициализирован чем-то вроде 'float .MinValue'. – juharr
Почему вы не используете dataLines.Min(); получить самый маленький? – Naeim
Перед циклом вам нужно поместить 'maxvalueX = float.MinValue;' и 'minvalueX = float.MaxValue;' перед тем, как сбросить значения. – Octopoid