Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Среднее арифметическое


Автор: GotNothing 8.1.2007, 15:42
 smile В соревнованиях по фигурному катанию N судей независимо выставляют оценки спортсмену. Затем из объявленных оценок удаляют самую высокую (одну, если самую высокую оценку выставили несколько судей). Аналогично поступают с самой низкой оценкой. Для оставшихся оценок вычисляется среднее арифметическое, являющееся зачетной оценкой. По заданным оценкам судей определите зачетную оценку спортсмена.  smile 

Автор: Xenon 8.1.2007, 17:10
Код

#include <iostream>
#include <conio.h>
using std::cout;
using std::cin;

template <class T>
T average(T* arr,int size)
{
    //Сортируем элементы
    for (int j=1,i=0;j<size;j++)
    {
        int temp=arr[j];
        for (i=j-1;i>=0 && temp<arr[i];i--)
        {
            arr[i+1]=arr[i];
        }
        arr[i+1]=temp;
    }
    //Теперь первый элемент - самая низкая оценка, а последний - самая высокая
    T sum=0;
    //Подсчитаем сумму
    for (int i=1;i<size-1;i++)
    {
        sum+=arr[i];
    }
    //Вернем среднее
    return sum/(size-2);
}

int main(int argc, char* argv[])
{
    int N=0;
    while(true)
    {
        cout << "Vvedite chislo sudej: ";
        cin >> N;
        if(N>2)
        {
            break;
        }
        cout << "Oshibka - chislo sudej dolzhno bit bolshe 2\n";
    }
    int* arr=new int[N];
    for (int i=0;i<N;i++)
    {
        cout << "\nVvedite ocenku sudji " << i+1 << ": ";
        cin >> arr[i];
    }
    cout << "Srednij ball raven: " << average<int>(arr,N);
    _getch();
   delete [] arr;
}

Автор: GotNothing 8.1.2007, 23:28
Спасибо большое!  smile
Комментарии очень в тему.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)