C++ 得到错误的最低值,如果我分开最低和最高(for)循环,那么我得到正确的最低值
在第三个for循环中,对最小元素和最大元素进行了比较,我得到了最小元素的错误值。但为什么我不明白。 如果我把第三个循环分成两个for循环,一个用于最低元素,一个用于最高元素,那么我得到了正确的答案C++ 得到错误的最低值,如果我分开最低和最高(for)循环,那么我得到正确的最低值,c++,loops,C++,Loops,在第三个for循环中,对最小元素和最大元素进行了比较,我得到了最小元素的错误值。但为什么我不明白。 如果我把第三个循环分成两个for循环,一个用于最低元素,一个用于最高元素,那么我得到了正确的答案 #include <iostream> using namespace std; int main() { float rainfall[12]; float total = 0.0; float avg = 0.0; float high, lowes
#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;
}
#包括
使用名称空间std;
int main()
{
浮雨[12];
浮动总额=0.0;
浮动平均值=0.0;
浮高,浮低;
对于(int i=0;i<12;i++){
cin>>降雨[i];
}
高=降雨量[0];
最低值=降雨量[0];
对于(int i=0;i<12;i++){
总量=总量+降雨量[i];
平均值=总数/12;
}
对于(int i=0;i<12;i++){
if(降雨量[i+1]<最低值){
最低值=降雨量[i+1];
}
如果(降雨量[i+1]>高){
高=降雨量[i+1];
}
}
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
计算精度(2);
cout您的代码有未定义的行为,因为您正在访问rainment[i+1]
fori
=11
您应该从i
=1
开始,并将其保留为rainment[i]
注:
- 在您第一次需要变量的地方声明变量
- 应仅执行一次
avg
的计算
完成。如果您将代码格式化得很整齐,那么应该更容易遵循逻辑,也更容易让其他人帮助解决您的问题。