我試圖創建一個函數,一旦調用它,將從數據文件讀取值並給出四個輸出:最大正值,最小正值,最大負值和最小值負值。如果沒有正值,它應該輸出「沒有正值」,負值也是一樣。 我遇到的主要問題是讓它返回正確的最小負值。找到最大值和最小值的C++函數
這是我到目前爲止。
void maxMinimum (double x[], int n)
{
int i;
double posMaximum;
double posMinimum;
double negMaximum;
double negMinimum;
double max;
double min;
posMaximum = x[0];
for (i=0; i <= n-1; i++)
{
if(x[i] > posMaximum)
posMaximum = x[i];
}
cout << " Maximum positive value = " << fixed << setprecision(2) << setw(8) << right << posMaximum << endl;
posMinimum = x[0];
for (i=0; i <= n-1; i++)
{
if(x[i] < posMinimum) if(x[i] > 0.0)
posMinimum = x[i];
}
cout << " Minimum positive value = " << fixed << setprecision(2) << setw(8) << right << posMinimum << endl;
negMaximum = x[0];
for (i=0; i <= n-1; i++)
{
if(x[i] < negMaximum) if(x[i] < 0.0)
negMaximum = x[i];
}
cout << " Maximum negative value = " << fixed << setprecision(2) << setw(8) << right << negMaximum << endl;
negMinimum = x[0];
for (i=0; i <= n-1; i++)
{
if (x[i] < 0.0 && x[i] < negMaximum)
negMinimum = x[i];
}
cout << " Minimum negative value = " << fixed << setprecision(2) << setw(8) << right << negMinimum << endl << endl;
max = x[0];
for (i=0; i <= n-1; i++)
{
if(x[i] > max)
max = x[i];
}
min = x[0];
for (i=0; i <= n-1; i++)
{
if(x[i] < min)
min = x[i];
}
if(max < 0.0)
cout << " No positive values" << endl;
if(min >= 0.0)
cout << " No negative values" << endl << endl;
}
當執行該函數將返回正值爲最小負值。由於if (x[i] < 0.0 && x[i] < negMaximum)
,這對我來說沒有意義。有人能告訴我我錯過了什麼嗎?
注意:最小負值是指最接近於零的值。最大負值離零最遠。
在此先感謝!
最小和最大負值似乎是做同樣的事情(找到最負值)。還要添加更多的parens:((x [i] <0.0)&&(x [i]
Dweeberly