-4
3番目のforループ比較で、最小の要素と最大の要素を比較すると、最小の要素に対して誤った値が得られます。なぜ私は理解しません。 3番目のループを2つのforループ、1つは最低の要素、もう1つは最高の要素に分けると、正しい答えが得られます。あなたはi
= 11
ためrainfall[i+1]
にアクセスしているよう最下位と最上位の(for)ループを分離すると、正しい最小値が得られます
#include <iostream>
using namespace std;
int main()
{
float rainfall[12];
float total = 0.0;
float avg = 0.0;
float high, lowest;
for (int i = 0; i < 12; i++) {
cin >> rainfall[i];
}
high = rainfall[0];
lowest = rainfall[0];
for (int i = 0; i < 12; i++) {
total = total + rainfall[i];
avg = total/12;
}
for (int i = 0; i < 12; i++) {
if (rainfall[i + 1] < lowest) {
lowest = rainfall[i + 1];
}
if (rainfall[i + 1] > high) {
high = rainfall[i + 1];
}
}
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << total << endl;
cout << avg << endl;
cout << high << endl;
cout << lowest << endl;
return 0;
}
のhttp実行する必要があり、それらを必要とする時点での宣言変数://en.cppreferenceを。 com/w/cpp/algorithm/minmaxに設定されます。 –
コードをきちんと書式設定すると、ロジックに従うのが簡単になり、問題を解決するのに役立つはずです。 – Galik