Помогите пожалуйста с кодом программы в С++
не могу разобраться с кодом:( новичок в этом:)) помогите пожалуйста!!:) заранее спасибо:)
а код сам где, в котором вы не можете разобраться. Хоть что-нибудь сами написали? Если да, то выкладывайте посмотрим.
// Привожу в виде отрывка, до полной программы добить легко
// Предполагаем, что нам дан массив massiv[ ] и n количество элементов:
float midlNumber=0.0; // переменная для хранения среднего значения
for (int i=0; i<n; i++) midlNumber=(midlNumber+massiv); // находим сумму всех элементов
midlNumber=midlNumber/n; // сумму делим на количество элементов, теперь это среднее значение
int numberOfCage=0; // переменная для хранения номера ячейки
float dev, lastDev=midlNumber; // переменные для хранения разности
for (int i=0; i<n; i++)
{
dev= massiv-midlNumber; // находим разность между элементом и средним значением
if (dev<0) dev=0-dev; // если разность отрицательная, делаем положительной
if (dev<lastDev) // если новая разность меньше меньшей из найденных:
{
lastDev=dev; // запоминаем новую разность
numberOfCage=i; //запоминаем номер ячейки
}
}
// Теперь среднее значение находится в переменной midlNumber, а номер ячейки в numberOfCage.
Цитата: cronya
а код сам где, в котором вы не можете разобраться. Хоть что-нибудь сами написали? Если да, то выкладывайте посмотрим.
я к сожалению понимаю только как он должен примерно выглядить :( но написать не знаю как:( просто не понимаю:(
Цитата: Lakroft
// Вот мое скромное предложение (сам от новичка недалеко ушел)
// Привожу в виде отрывка, до полной программы добить легко
// Предполагаем, что нам дан массив massiv[ ] и n количество элементов:
float midlNumber=0.0; // переменная для хранения среднего значения
for (int i=0; i<n; i++) midlNumber=(midlNumber+massiv); // находим сумму всех элементов
midlNumber=midlNumber/n; // сумму делим на количество элементов, теперь это среднее значение
int numberOfCage=0; // переменная для хранения номера ячейки
float dev, lastDev=midlNumber; // переменные для хранения разности
for (int i=0; i<n; i++)
{
dev= massiv-midlNumber; // находим разность между элементом и средним значением
if (dev<0) dev=0-dev; // если разность отрицательная, делаем положительной
if (dev<lastDev) // если новая разность меньше меньшей из найденных:
{
lastDev=dev; // запоминаем новую разность
numberOfCage=i; //запоминаем номер ячейки
}
}
// Теперь среднее значение находится в переменной midlNumber, а номер ячейки в numberOfCage.
// Привожу в виде отрывка, до полной программы добить легко
// Предполагаем, что нам дан массив massiv[ ] и n количество элементов:
float midlNumber=0.0; // переменная для хранения среднего значения
for (int i=0; i<n; i++) midlNumber=(midlNumber+massiv); // находим сумму всех элементов
midlNumber=midlNumber/n; // сумму делим на количество элементов, теперь это среднее значение
int numberOfCage=0; // переменная для хранения номера ячейки
float dev, lastDev=midlNumber; // переменные для хранения разности
for (int i=0; i<n; i++)
{
dev= massiv-midlNumber; // находим разность между элементом и средним значением
if (dev<0) dev=0-dev; // если разность отрицательная, делаем положительной
if (dev<lastDev) // если новая разность меньше меньшей из найденных:
{
lastDev=dev; // запоминаем новую разность
numberOfCage=i; //запоминаем номер ячейки
}
}
// Теперь среднее значение находится в переменной midlNumber, а номер ячейки в numberOfCage.
спасибо большое)) попробуем))
Цитата: __VT_
Цитата: cronya
а код сам где, в котором вы не можете разобраться. Хоть что-нибудь сами написали? Если да, то выкладывайте посмотрим.
я к сожалению понимаю только как он должен примерно выглядить :( но написать не знаю как:( просто не понимаю:(
Не знаю не вопрос. Вы бы для начала нарисовали для себя алгоритм вашей задачи, а потом попробовали бы уже по нему написать что нибудь. Как говориться "Тренируйтесь на бумажке".
Цитата: __VT_
// Вот мое скромное предложение (сам от новичка недалеко ушел)
Было бы еще красивее, если бы код оформили в теги соответствующие. Есть такая кнопка при ответе: {...} Вставить форматированный код
f.h:
Код:
#pragma once
#include <utility>
typedef std::pair< double, std::size_t > MedianResult;
MedianResult MedianPosition( const double * first, const double * last );
#include <utility>
typedef std::pair< double, std::size_t > MedianResult;
MedianResult MedianPosition( const double * first, const double * last );
Код:
#include <algorithm>
#include <numeric>
#include <cmath>
#include "f.h"
using namespace std;
struct Comp
{
double m_;
Comp( double m ) : m_( m ){}
double operator ()( double a, double b ) const { return fabs( a - m_ ) < fabs( b - m_ ); }
};
MedianResult MedianPosition( const double * first, const double * last )
{
double m = accumulate( first, last, 0.0 ) / ( last - first );
return make_pair( m, min_element( first, last, Comp( m ) ) - first );
}
#include <numeric>
#include <cmath>
#include "f.h"
using namespace std;
struct Comp
{
double m_;
Comp( double m ) : m_( m ){}
double operator ()( double a, double b ) const { return fabs( a - m_ ) < fabs( b - m_ ); }
};
MedianResult MedianPosition( const double * first, const double * last )
{
double m = accumulate( first, last, 0.0 ) / ( last - first );
return make_pair( m, min_element( first, last, Comp( m ) ) - first );
}
Код:
#include <iostream>
#include "f.h"
using namespace std;
int main()
{
double arr[] = { 1, 2, 3, 4, 5, 6 };
MedianResult r = MedianPosition( arr, arr + sizeof arr / sizeof arr[ 0 ] );
cout << r.first << ' ' << r.second << '\n';
return 0;
}
#include "f.h"
using namespace std;
int main()
{
double arr[] = { 1, 2, 3, 4, 5, 6 };
MedianResult r = MedianPosition( arr, arr + sizeof arr / sizeof arr[ 0 ] );
cout << r.first << ' ' << r.second << '\n';
return 0;
}