C/C++

С ++: Количество нулей и среднее арифмитическое последовательности чисел

С клавиатуры вводятся N произвольных чисел.
Определить, сколько среди них нулей и среднее
арифметическое положительных.
Помогите пожалуйста.
#include <iostream>
using namespace std;
int main() {
cout << "N: ";
int n;
if (!n) exit(0);
int m = 0;
int k = 0;
double sum = 0.0;
double x;
cout << ">>> ";
do {
cin >> x;
if (!x) ++m;
if (x > 0) {
++k;
sum += x;
}
} while (--n);
cout << "Zero: " << m << '\n';
cout << "Average: " << sum / k << '\n';
system("pause > nul");
}
ВМ
Василий Маклаков
84 725
Лучший ответ
Так просто - для коллекции:
#include <iostream>
using namespace std;
int main()
{
double average = 0, zeroes = 0,
positives = 0, x, m, N;
cout << "N » ";
cin >> N;
for (m = 0; m < N; m++)
{
cin >> x;
if (x == 0) zeroes++;
if (x > 0)
{
positives++;
average += x;
}
}
cout << zeroes << " zeroes";
if (positives)
cout << ", average of positive numbers = "
<< average / positives;
cout << endl;
system("pause > nul");
return 0;
}
Иван Лизун
Иван Лизун
29 440
Так понимаю надо будет использовать условные конструкции и вектор.
Определить количество нулей легко.

Допустим вы ввели произвольные числа, они попали в вектор, тогда мы должны его перебрать и на каждой итерации сравнивать

if (s == 0)
num++

s - произвольная переменная, сами можете придумать название.

в переменную s будут поступать числа из вектора и программа будет смотреть, если s равно 0, то другая переменная будет прибавляться на единицу, эту переменную я назвал num, опять же вы можете назвать как хотите.
В итоге эта num будет выводиться на экран.

Со средним арифметическим можно в принципе так же сделать.

Создать переменную, которая будет считать количество положительных чисел.
Например число положительное, мы его прибавляем в какую-нибудь переменную, например

x1

а в x2 мы прибавляем единицу, то есть она будет счетчиком положительных.

После того, как программа переберет весь вектор чисел, мы поделим x1 на x2 и всё в принципе.
S=
Smile =)
188

Похожие вопросы