双变量输出 32767 始终代替用户输入



我正在编写代码,询问每月降雨量,然后输出年度总量、月平均值、最小降雨量和最大降雨量月份(索引(。我的代码几乎是完整的,除了输出而不是输出最大值,输出总是显示变量类型 32767 的最大范围(例如,如果雨量为 70mm 且最大值,控制台始终显示 32767(。感谢您的帮助。我在自学。

我尝试了以下代码。

#include<iostream>
using namespace std;
int main(){
    const int numMonths = 3;
    double monthlyRain[numMonths]={0,0,0};
    string monthName[numMonths]= {"Jan", "Feb", "Mar"};
    int count = 0;
    int indexWettest = 0;
    int indexDriest = 0;
    double  yearTotal=0, monthlyAverage=0;
    double monthHighest;
    double monthLowest;
    monthLowest = monthlyRain[0];
    monthHighest = monthlyRain[0];

    // enter monthly rain;
    for (int count=0; count < numMonths; count++){
        cout << "Please enter amount of rain in " << monthName[count] << endl;
        cin >> monthlyRain[count];
    }

    // print month and corresponding rain amount;
    cout << "Month --- Rain(mm)" << endl;
    for (int count = 0; count < numMonths; count++){
        cout << monthName[count] << " " << monthlyRain[count] << endl;
    }

    // calculate year total;
    for (int count = 0; count < numMonths; count++){
        yearTotal += monthlyRain[count];
    }
    // calculate average monthly rainfall;
    monthlyAverage = yearTotal/numMonths;
    // find month with lowest rainfall;

    // find month with highest rainfall;
    for (int count = 0; count < numMonths; count++){    
        if (monthlyRain[count] > monthHighest){
            monthHighest = monthlyRain[count+1];
            indexWettest = count;
        }
    }

// PROBLEM IS HERE!;
    for (int count = 0; count < numMonths; count++){
        if (monthlyRain[count] < monthLowest){
            monthLowest = monthlyRain[count];
            indexDriest = count;
        }
    }
    cout << "Total yearly rain fall is: " << yearTotal << endl;
    cout << "Average monthly rainfall is: " << monthlyAverage << endl;
    cout << "The driest month is " <<  monthName[indexDriest] << " with rain amount of  " << monthLowest << endl;
    cout << "The wettest month is " <<  monthName[indexWettest] << " with rain amount of  " << monthHighest << endl; //<< monthName[indexWettest];
return 0;
}

预期结果是用户输入。

读取编译器警告。

main.cpp:35:19: warning: 'yearTotal' may be used uninitialized in this function [- 
Wmaybe-uninitialized]
yearTotal += monthlyRain[count];

声明yearTotal的行应为双年总计 = 0;

与其他变量相同。始终初始化它们。

最新更新