Правильно ли решена задача ? ( C++ ) - Вопросы по С+

Вопрос Правильно ли решена задача ? ( C++ )

Регистрация
14 Сен 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
/*Организовать беспрерывный ввод чисел с клавиатуры, пока пользователь не введёт 0.
После ввода нуля, показать на экран количество чисел, которые были введены,
их общую сумму и среднее арифметическое.
Подсказка: необходимо объявить переменную-счетчик,
которая будет считать количество введенных чисел, и
переменную, которая будет накапливать общую сумму чисел. */

#include
using namespace std;
int main() {

int vvodchic ;
int sum = 0 ;
int colichestvo = 0 ;
double srznch = 0 ;
int w = 1 ;

while ( vvodchic != 0 ) {
cin >> vvodchic ;
sum += vvodchic ;
colichestvo += 1 ;
}
if ( w = 1 ) {
cout << " you vveli " << colichestvo - 1 << " chisel " << endl ;
cout << " sum = " << sum << endl ;
srznch = sum / (colichestvo - 1) ;
cout << " srznch = " << srznch << endl ;
}

return 0 ;
}
 
Регистрация
22 Ноя 2013
Сообщения
71
Репутация
0
Спасибо
0
Монет
0
Пожалуйста имейте ввиду, что этот пользователь забанен
//без кучи разных проверок (как предлагали выше) и т. п. int main() { int num =-1, count = -1, sum = 0; while (num != 0) { std::cin >> num; sum += num; count++; } std::cout << "Count: " << count << "
Sum: " << sum << "
AVG: " << sum/count << std::endl; system("pause"); return 0; }
 
Регистрация
19 Авг 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
нет, так как переменная vvodchic не инициализирована, мы не знаем какое в ней изначальное значение и ничего не мешает там быть значению 0, а в этом случае цикл не выполнится ни разу
 
Регистрация
13 Май 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
1. В цикле while, при первой итерации проверяется неинициализированная переменная. Это ошибка. 2. Вы используете ввод значения без проверки. Что если пользователь введет символ? Или строку символов? Произойдет нарушение потока. Это плохо. 3. Правило хорошего тона, в конце программы делать какую нибудь задержку, что бы можно было увидеть результат. а у вас программа просто завершается. Это не критично, не не есть хорошо.
 
Регистрация
29 Сен 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
#include <iostream> #include <vector> #include <numeric> using namespace std; int main() { vector<double> seq; double value; while (true) { cout << " Value: "; cin >> value; if (!value) break; seq.push_back(value); } auto count = seq.size(); auto sum = accumulate(seq.begin(), seq.end(), 0.0); auto average = sum / count; cout << "
Count: " << count << "
Sum: " << sum << "
Average: " << average << endl; cin.ignore(); cin.get(); }
 
Регистрация
13 Мар 2017
Сообщения
314
Репутация
70
Спасибо
11
Монет
0
/*Организовать беспрерывный ввод чисел с клавиатуры, пока пользователь не введёт 0.
После ввода нуля, показать на экран количество чисел, которые были введены,
их общую сумму и среднее арифметическое.
Подсказка: необходимо объявить переменную-счетчик,
которая будет считать количество введенных чисел, и
переменную, которая будет накапливать общую сумму чисел. */

#include
using namespace std;
int main() {

int vvodchic ;
int sum = 0 ;
int colichestvo = 0 ;
double srznch = 0 ;
int w = 1 ;

while ( vvodchic != 0 ) {
cin >> vvodchic ;
sum += vvodchic ;
colichestvo += 1 ;
}
if ( w = 1 ) {
cout << " you vveli " << colichestvo - 1 << " chisel " << endl ;
cout << " sum = " << sum << endl ;
srznch = sum / (colichestvo - 1) ;
cout << " srznch = " << srznch << endl ;
}

return 0 ;
}

[THIDE="0"]#include <iostream>
#include <vector>
#include <conio.h>

using namespace std;

int main(){
int n=0, t=0, r=0;
do
{
cout << "Enter N: ";
cin >> n;
cout << "\n";
t++;
r += n;
} while (n != 0);
cout << "\nN entered " << t << " times";
cout << "\nSum of N = " << r << "\n";
}[/THIDE]
 
Сверху Снизу