一度呼び出されると、データ ファイルから値を読み取り、最大正値、最小正値、最大負値、および最小負値の 4 つの出力を与える関数を作成しようとしています。正の値がない場合は、「正の値はありません」と出力する必要があり、負の場合も同様です。私が直面している主な問題は、正しい最小の負の値を返すことです。
これが私がこれまでに持っているものです。
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)
。誰かが私に欠けているものを教えてもらえますか?
注: 負の最小値は、ゼロに最も近い値を指します。負の最大値はゼロから最も離れています。
前もって感謝します!