我正在添加到我的for循環來查找數組中的最小值和最大值,我從解析文本文件中獲得。找到最大值很容易,但對於最小我得到一個值爲零,它應該是1.這是我用於循環 - (我到目前爲止,我只測試得到最低溫度。 x)添加腳本來找到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);
}
關於這裏出錯的任何想法將不勝感激!謝謝! 仁
你是什麼初始化最小值爲?通常你想把它們設置爲'float.MaxValue'。如果你不初始化它們,那麼默認情況下它們將爲0,它小於1.如果你所有的值都是負數,你會得到與max相同類型的問題,所以它應該被初始化爲'float .MinValue'。 – juharr
爲什麼你不使用dataLines.Min();得到最小的一個? – Naeim
您需要在循環前放置'maxvalueX = float.MinValue;'和'minvalueX = float.MaxValue;'以避免重置值。 – Octopoid