Как и названия, я получаю случайные научные числа, когда храню их в массиве и пытаюсь их вывести. Я не уверен, почему они меняются, поскольку никаких операций с числами не было. Из-за меняющихся чисел я получаю неправильную температуру Фаренгейта.Получение случайных научных чисел вместо входов
Пример ввода: дни 0-6 = 12 Получаю воскресенье = 0, понедельник = 1.32657e. и т.д. Числа являются случайными, даже не то же самое, хотя вход остается один и тот же
int main()
{
const int DAYS_OF_WEEK = 7;
const double MAXIMUM_TEMPERATURE = 60;
const double MINIMUM_TEMPERATURE = -90 ;
double temperature;
int dayCount;
double fahrenheit;
double temperatures[6];
string daysOfWeek[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};//string array for the days of the week
for(int dayCount = 0; dayCount < DAYS_OF_WEEK; dayCount++)
{
cout << "Please enter the Temperature for " << daysOfWeek[dayCount] << " in Celsius: "; // re-prompt for temperature
cin >> temperature;
while(cin.fail())// checks to see if cin failed
{
cin.clear();
cout << "\nInvalid input. Only numeric values, please try again. "; // re-prompt
cin >> temperature; // try to get the value again
fflush(stdin); //clear input buffer
}//end while
if(temperature > MAXIMUM_TEMPERATURE || temperature < MINIMUM_TEMPERATURE)
{
cout << "\nInvalid input. Temperature must be between " << MINIMUM_TEMPERATURE <<" and " << MAXIMUM_TEMPERATURE <<". Please try again." << endl;// re-prompt user for temp between ranges
cin >> temperature;
}
else
{
temperature = temperatures[dayCount];
}//end else
}//end for
cout << "Temperatures for the Week.\n_________________________________________________";
for (int dayCount = 0; dayCount < DAYS_OF_WEEK; dayCount++)
{
cout << "\nTemperature for " << daysOfWeek[dayCount] << " in Celsius is: " << temperatures[dayCount];
fahrenheit = (5.0/9.0) * (temperatures[dayCount] + 32);
cout << "In Fahrenheit it is:" << fahrenheit;
} //end for
return 0;
}//end main
в вашей строке 'if (temperature> MAXIMUM_TEMPERATURE ...' вы должны сделать это в цикле 'while' и избавиться от' else' – mstbaum
@mstbaum. Просто сделал это, прежде чем вы его прокомментировали, но программа теперь вылетает после все 7 temps были введены – Ryan
См. комментарий @ G.Ko ниже ответа – mstbaum