Здравствуйте, как написать формулу на с++ для вычисления среднего значения массива без минимального элемента? - вопрос №3814430

#include <windows.h>
#include <iostream>
#include <locale.h>

using namespace std;

int n;
int *arr;
int min;

void Worker(LPVOID W)
{
float sum = 0;
float Srmin = 0; // переменная для сред.значения без минимального элемента
float SrZn; // переменная для ср. значения
int count = 0;
int max = 0;
int min;

for (int i = 0; i < n; i++)
{
sum=sum+arr[i];
if (arr[i] < min)
{
Srmin = (sum-min)/n;
}
Sleep(12);
}

SrZn= sum/n;
for(int i=0; i<n; i++)
{
if(arr[i]>SrZn)
{
count++;
}
}
cout << "\nСреднее значение элементов без минимального =" << Srmin;
cout << "\nСреднее значение элементов массива =" << SrZn;
cout <<"\nКоличество элементов больше среднего =" << count;
}

int main()
{
setlocale(LC_ALL, «Russian»);
HANDLE hThread;
DWORD IDThread;
int inc = 10;
int max = 0;
int min;
cout << «Введите размер масcива: »;
cin >> n;
cout << «Введите элементы массива: »;

int *tmp;
arr = new int[n];
tmp = arr;
for (int i = 0; i < n; i++, *tmp++)
{
cin >> *tmp;
}
cout << «Исходный массив: » << endl;
tmp = arr;

for (int i = 0; i < n; i++, *tmp++)
{
cout << *tmp << endl;
}
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Worker, 0, inc, &IDThread);
if (hThread == NULL)
return GetLastError();
cout << endl;

tmp = arr;
min = *tmp;
for (int i = 0; i < n; i++, *tmp++)
{
if (*tmp < min)
{
min = *tmp;
}
if (*tmp > max)
{
max = *tmp;
}
Sleep(7);
}


cout << «Минимальный элемент = » << min;
cout << "\nМаксимальный элемент = " << max;
// ждем, пока поток Add закончит работу
WaitForSingleObject(hThread, INFINITE);
// закрываем дескриптор потока Add
CloseHandle(hThread);
cout << endl;
}
26.05.20
0 ответов
Ответов пока нет
Посмотреть всех экспертов из раздела Технологии > C/C++
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store