C/C++
Помогите, пожалуйста, написать программу на C++ (массивы)
C++ В массиве X(N) найти процент положительных, отрицательных и нулевых элементов и вывести сообщение, каких элементов больше.
#include <random>
#include <iostream>
#include <iomanip>
using namespace std;
class Statistic {
public:
Statistic() : total(0), pos(0), neg(0), zer(0) {}
void add(const int value) {
++total;
if (value > 0) ++pos;
else if (value < 0) ++neg;
else ++zer;
}
double positive()const {
return double(pos) / total * ten;
}
double negaitive()const {
return double(neg) / total * ten;
}
double zero()const {
return double(zer) / total * ten;
}
private:
unsigned total;
unsigned pos;
unsigned neg;
unsigned zer;
inline static const auto ten = 100.;
};
int main() {
cout << "N: ";
size_t n;
cin >> n;
auto x = new int[n];
uniform_int_distribution<> uid(-1, 1);
mt19937 gen{ random_device()() };
for (auto i = 0U; i < n; ++i) x[i] = uid(gen);
for (auto i = 0U; i < n; ++i) cout << setw(3) << x[i];
puts("");
Statistic stat;
for (auto i = 0U; i < n; ++i) stat.add(x[i]);
system("chcp 1251 > nul");
auto pos = stat.positive();
auto max = pos;
string more = "Положительных больше";
auto neg = stat.negaitive();
if (neg > max) {
more = "Отрицательных больше";
max = neg;
}
auto zer = stat.zero();
if (zer > max) more = "Нулевых больше";
cout << fixed << setprecision(2)
<< "Положительных: " << pos << "%\n"
<< "Отрицательных: " << neg << "%\n"
<< "Нулевых: " << zer << "%\n"
<< more << '\n';
delete[] x;
system("pause > nul");
}
#include <iostream>
#include <iomanip>
using namespace std;
class Statistic {
public:
Statistic() : total(0), pos(0), neg(0), zer(0) {}
void add(const int value) {
++total;
if (value > 0) ++pos;
else if (value < 0) ++neg;
else ++zer;
}
double positive()const {
return double(pos) / total * ten;
}
double negaitive()const {
return double(neg) / total * ten;
}
double zero()const {
return double(zer) / total * ten;
}
private:
unsigned total;
unsigned pos;
unsigned neg;
unsigned zer;
inline static const auto ten = 100.;
};
int main() {
cout << "N: ";
size_t n;
cin >> n;
auto x = new int[n];
uniform_int_distribution<> uid(-1, 1);
mt19937 gen{ random_device()() };
for (auto i = 0U; i < n; ++i) x[i] = uid(gen);
for (auto i = 0U; i < n; ++i) cout << setw(3) << x[i];
puts("");
Statistic stat;
for (auto i = 0U; i < n; ++i) stat.add(x[i]);
system("chcp 1251 > nul");
auto pos = stat.positive();
auto max = pos;
string more = "Положительных больше";
auto neg = stat.negaitive();
if (neg > max) {
more = "Отрицательных больше";
max = neg;
}
auto zer = stat.zero();
if (zer > max) more = "Нулевых больше";
cout << fixed << setprecision(2)
<< "Положительных: " << pos << "%\n"
<< "Отрицательных: " << neg << "%\n"
<< "Нулевых: " << zer << "%\n"
<< more << '\n';
delete[] x;
system("pause > nul");
}
Алексей Смирнов
Спасибо за помощь!)
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
srand(time(NULL));
const int N = 12;
int X[N];
int count_plus = 0, count_minus = 0, count_zero = 0;
for(int i = 0; i < N; i++)
{
X[i] = rand() % 17 * pow(-1, rand() % 2);
cout << X[i] << ' ';
if(X[i] == 0) count_zero++;
else if (X[i] < 0) count_minus++;
else count_plus++;
}
cout << endl;
cout << "Процент положительных элементов = "
<< (double) count_plus / (double) N * 100.0
<< '.' << endl;
cout << "Процент отрицательных элементов = "
<< (double) count_minus / (double) N * 100.0
<< '.' << endl;
cout << "Процент нулевых элементов = "
<< (double) count_zero / (double) N * 100.0
<< '.' << endl;
if(count_plus > count_minus)
{
if(count_plus > count_zero)
{
cout << "Положительных элементов больше." << endl;
}
else if (count_plus == count_zero)
{
cout << "Больше положительных и нулевых элементов." << endl;
}
else // count_plus < count_zero
{
cout << "Нулевых элементов больше." << endl;
}
}
else if(count_plus == count_minus)
{
if(count_plus == count_zero)
{
cout << "Всех элементов одинаково." << endl;
}
else if(count_plus > count_zero)
{
cout << "Больше положительных и отрицательных элементов." << endl;
}
else // count_zero > count_plus
{
cout << "Больше нулевых элементов." << endl;
}
}
else // count_plus < count_minus
{
if(count_zero > count_minus)
{
cout << "Нулывых элементов больше." << endl;
}
else if (count_zero == count_minus)
{
cout << "Больше нулевых и отрицательных элементов." << endl;
}
else // count_minus > count_zero
{
cout << "Отрицательных элементов больше." << endl;
}
}
return 0;
}
#include <ctime>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
srand(time(NULL));
const int N = 12;
int X[N];
int count_plus = 0, count_minus = 0, count_zero = 0;
for(int i = 0; i < N; i++)
{
X[i] = rand() % 17 * pow(-1, rand() % 2);
cout << X[i] << ' ';
if(X[i] == 0) count_zero++;
else if (X[i] < 0) count_minus++;
else count_plus++;
}
cout << endl;
cout << "Процент положительных элементов = "
<< (double) count_plus / (double) N * 100.0
<< '.' << endl;
cout << "Процент отрицательных элементов = "
<< (double) count_minus / (double) N * 100.0
<< '.' << endl;
cout << "Процент нулевых элементов = "
<< (double) count_zero / (double) N * 100.0
<< '.' << endl;
if(count_plus > count_minus)
{
if(count_plus > count_zero)
{
cout << "Положительных элементов больше." << endl;
}
else if (count_plus == count_zero)
{
cout << "Больше положительных и нулевых элементов." << endl;
}
else // count_plus < count_zero
{
cout << "Нулевых элементов больше." << endl;
}
}
else if(count_plus == count_minus)
{
if(count_plus == count_zero)
{
cout << "Всех элементов одинаково." << endl;
}
else if(count_plus > count_zero)
{
cout << "Больше положительных и отрицательных элементов." << endl;
}
else // count_zero > count_plus
{
cout << "Больше нулевых элементов." << endl;
}
}
else // count_plus < count_minus
{
if(count_zero > count_minus)
{
cout << "Нулывых элементов больше." << endl;
}
else if (count_zero == count_minus)
{
cout << "Больше нулевых и отрицательных элементов." << endl;
}
else // count_minus > count_zero
{
cout << "Отрицательных элементов больше." << endl;
}
}
return 0;
}
Алексей Смирнов
Спасибо вам огромное!! Выурчили)
Алексей Смирнов
еще раз спасибо!)
Похожие вопросы
- Помоги пожалуйста написать программу на C++
- Помогите пожалуйста написать программу на C++. Очень нужно!
- Помогите пожалуйста написать программу на C++. Срочно нужно, пожалуйста.
- Помогите пожалуйста написать программу на C
- Здравствуйте, помогите пожалуйста написать программу на C++ с использованием функций
- Помогите пожалуйста написать программу небольшую в C++. Одномерный массив
- С++.Помогите пожалуйста! Написать программу по обработке динамических массивов. Размеры массивов вводить с клавиатуры.
- Здравствуйте, помогите пожалуйста написать программы на языке C++.
- Помогите плиз написать программу на Си Массив структур
- Помогите пожалуйста написать программу на Си