Привет, мне нужна помощь. Я знакомлюсь с классом программирования, и мы используем c ++. Я надеюсь, что кто-то может помочь мне с назначением, которое должно было быть вчера (я понимаю, что не ожидал чудесных ответов, но девушка всегда может попробовать).
У меня две проблемы, о которых я знаю. Первый касается наименьшего значения.
Самое главное — попытаться сделать так, чтобы требования соответствовали трем разам, но не потерпели неудачу на моем общем счете. Я не могу использовать массивы или что-то еще, чему я еще не научился, поэтому я написал это. Я видел похожие проблемы и вопросы, но в итоге они получили ответы, слишком сложные для текущего прогресса в классе. Итак, вот инструкции по проблемам:
инструкции
1) Напишите программу, чтобы найти среднее значение, наибольшее значение и наименьшее значение из набора чисел, введенных в качестве ввода с клавиатуры. Количество значений в наборе данных должно быть в диапазоне от 0 до 20 включительно. Пользователь сначала введет количество значений в наборе данных (используйте переменную int Number). Дайте пользователю 3 попытки ввода номера в указанном диапазоне. Если значение для Введенного числа находится вне этого диапазона, напишите сообщение об ошибке, но продолжайте. Если пользователь не вводит правильное значение для числа в течение 3 попыток, распечатайте сообщение об ошибке и завершите программу.
2) Отформатируйте только вывод для среднего значения до 3 десятичных знаков при печати.
3) Значения в наборе данных, введенные в качестве входных данных, могут быть любыми положительными, отрицательными или нулевыми значениями.
4) Сделайте вывод программы читабельным (см. Пример ниже). (Примечание: вы не будете распечатывать входные значения, которые были введены в этой программе, как обычно требуется. Это потому, что мы еще не рассмотрели «инструмент», необходимый для этого в наших исследованиях).
Ниже будет вывод из выполнения вашей программы:
(используя эти значения для набора данных -> 19.0 53.4 704.0 -15.2 0 100.0
)
The largest number: 704
The smallest number: -15.2
The average of the 6 numbers entered: 143.533
yourName L4p2XX.cpp
Lab#4 prob 2 XX-XX-12
Вот мое плохое оправдание в решении:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double Number = 0, minValue, maxValue, average, total = 0;
int ct = 0, numCount;
cout << "How many numbers would you like to enter? ";
cin >> numCount;
for(ct = 1; ct <= numCount; ct += 1)
{
cout << "Enter Value from 0 to 20, inclusive: ";
cin >> Number;
if(Number > 20|| Number < 0)
for(int errorCt = 1; errorCt <= 4; errorCt += 1)
{
if(errorCt == 4)
{
cout << "You have had 3 attempts to enter a valid" <<
"number. \nPlease try this program again when you" <<
"are able to follow directions.";
cout <<"\nLBn\n"<<"L4P2LB.cpp\n"<<"11-05-12\n";
return 0;
}
cout << Number << "is not within range.\n" <<
"Please enter a number from 0 to 20: ";
cin >> Number;
} //end for loop
total += Number;
if(maxValue <= Number)
maxValue = Number;
if(Number <= minValue)
minValue = Number;
} //end for loop
cout << "The smallest number entered was " << minValue << endl;
cout << "The largest number you entered was " << maxValue << endl;
average = total/numCount;
cout << setprecision(3) << fixed << showpoint << "You entered " <<
numCount << " numbers. The average of these is " << average;
//Program ID
cout <<"\n" << "L4P2LB.cpp\n" << "11-05-12\n";
system ("pause");
return 0;
} // End main
Заранее спасибо всем, кто может направить меня в правильном направлении. Не ищу кого-то, кто мог бы выполнять мою работу, мне просто нужна помощь в направлении, если ничего другого или какие-либо предложения относительно того, что делать. Еще раз спасибо. Линду
Также мне нужно как-то сделать паузу после третьего раза и правильно выйти. Если я вставлю вторую паузу, она не сработает, поэтому я тоже пропускаю что-то очевидное!
Первая проблема, которую я вижу, это то, что вы не инициализировали пару переменных.
Вы должны либо инициализировать оба minValue
а также maxValue
переменные с чем-то, что будет перезаписано в каждом случае в первом цикле (обычно «положительная / отрицательная бесконечность», как это предусмотрено <limits>
) или просто установите оба в Number
в первой итерации, независимо от их текущего значения. Поэтому я бы предложил исправить это, заменив
if(maxValue <= Number)
maxValue = Number;
if(Number <= minValue)
minValue = Number;
с
if(maxValue <= Number || ct == 1)
maxValue = Number;
if(Number <= minValue || ct == 1)
minValue = Number;
как ct == 1
будет верно в первой итерации.
Тем не менее, вы проверяете 0..20
условие диапазона на неправильной переменной. Вы проверяете это на Number
переменная, но вы должны проверить numCount
переменная. Но Вы также не соблюдали требование, что переменная для хранения «числа чисел» должна быть Number
, так что вы сделал проверьте правильную переменную, но неверно прочитали входные данные в. Это должно решить эту проблему (я изменил имя переменной в cin >>...
line + переместил проверку за пределы вашего основного цикла):
cout << "How many numbers would you like to enter? ";
cin >> Number;
if(Number > 20|| Number < 0)
{
for(int errorCt = 1; errorCt <= 4; errorCt += 1)
...
if(errorCt == 4)
{
cout << "You have had 3 attempts to enter a valid" <<
"number. \nPlease try this program again when you" <<
"are able to follow directions.";
cout <<"\nLBn\n"<<"L4P2LB.cpp\n"<<"11-05-12\n";
return 0;
}
cout << Number << "is not within range.\n" <<
"Please enter a number from 0 to 20: ";
cin >> Number;
} //end for loop
}
for(ct = 1; ct <= Number; ct += 1)
{
...
}
...
Других решений пока нет …