双变量输出总是32767,而不是用户输入

时间:2019-06-02 09:01:49

标签: c++ variables types output double

我正在编写代码,询问每个月的降雨量,然后输出每年的总降雨量,月平均值,最小和最大降雨月份(指数)。我的代码几乎是完整的,除了输出始终显示变量类型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;
}

预期结果是用户输入。

1 个答案:

答案 0 :(得分:1)

阅读编译器警告。

     <!--language: lang-js-->
        $("#input1").keyup(function(){
            check_bname();
         });

        function check_bname() {
            var pattern = /^[a-zA-Z]*$/;
            var bname = $("#input1").val();
         if (pattern.test(bname) && bname !== '') 
         {             
          $("#bname_error_message").hide();
          $("#input1").removeClass("form-control-warning");
          $("#input1").parents(".form-group").removeClass("has-warning") 
          $("#input1").parents(".form-group").addClass("has-success")
          $("#input1").addClass("form-control-success"); 
         }  

        else if(bname === '') 
        {
          $("#bname_error_message").html("Should not be empty");
          $("#bname_error_message").show();
          $("#input1").removeClass("form-control-success"); 
          $("#input1").parents(".form-group").removeClass("has-success")
          $("#input1").addClass("form-control-warning");   
          $("#input1").parents(".form-group").addClass("has-warning")          
        } 

       else 
       {
        $("#bname_error_message").show();
        $("#bname_error_message").html("Should contain only Characters");
        $("#input1").removeClass("form-control-success"); 
        $("#input1").parents(".form-group").removeClass("has-success")
        $("#input1").addClass("form-control-warning");           
        $("#input1").parents(".form-group").addClass("has-warning")
       }
}

声明main.cpp:35:19: warning: 'yearTotal' may be used uninitialized in this function [- Wmaybe-uninitialized] yearTotal += monthlyRain[count]; 的行应为yearTotal = 0 ;

与其他变量相同。始终对其进行初始化。