Народ,помогите дорешать задачу на С++,буду благодарен.
- В целочисленном массиве Х(N) удалить все элементы, расположенные между максимальным и минимальным элементами.
- Найти среднее арифметическое элементов массива до и после удаления.
- В программе написать функции: удаления элемента, поиска номеров минимального и
максимального элементов, определения среднего арифметического
элементов массива.
из выше перечисленного выводит только средне арифметическое и средне арифметическое между 1 и последним числом.
#include
float srednee(int* a, int min, int max)
{
int s = 0;
for(int i = min; i <= max; i++)<br> s += a[i];
return s * 1.0 / (max - min + 1);
}
using namespace std;
int min_i(int* a, int n)
{
int m = a[0];
int numb = 0;
for(int i = 1; i < n; i++)
if(m > a[i])
{
m = a[i];
numb = i;
}
return numb;
}
int max_i(int* a, int n)
{
int m = a[0];
int numb = 0;
for(int i = 1; i < n; i++)
if(m < a[i])
{
m = a[i];
numb = i;
}
return numb;
}
using namespace std;
int main()
{
int N;
cin >> N;
int X[N];
for(int i = 0; i < N; i++)
cin >> X[i];
cout << "srednee znachenie vsego massiva: " << srednee(X, 0, N - 1) << endl;<br> int min = min_i(X, N);
int max = max_i(X, N);
if(min > max)
{
int z = min;
min = max;
max = z;
}
if(max - min == 0 || max - min == 1)
cout << "srednee znachenie korotkogo massiva: " << srednee(X, 0, N - 1) << endl;<br> else
{
int delta = max - min;
for(int i = max; i < N; i++)
X[i - delta + 1] = X[i];
cout << "srednee znachenie korotkogo massiva: " << srednee(X, 0, N - delta) << endl;<br> system("pause");
return 0;
}
}