Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2016, 12:08   #1
marksosof
Новичок
Джуниор
 
Регистрация: 04.04.2016
Сообщений: 1
По умолчанию Создать процедуру, определяющую два элемента, наиболее близкие к среднему

Подскажите, пожалуйста, как реализовать данную программку без особых заморочек.
Желательно с пояснениями.
Создать процедуру, определяющую в целочисленном векторе vectorn два элемента, наиболее близкие к среднему арифметическому всех элементов вектора. Элементы, расположенные между ними, отсортировать по возрастанию.
Наброски кода есть, но код бредовый.

Код:
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
int function(int n, int *vector);
int main() 
{
int i, n, m, vector_max, vector_min, l;
  time_t t; // Текущее время для инициализации генератора случайных чисел(рандомайзера)
  srand((unsigned) time(&t)); // Инициализация рандомайзера
  printf("\nVvedite min znachenie diapazona:"); // Ввод данных
  scanf("%d", &vector_min);
  printf("\nVvedite max znachenie diapazona:");
  scanf("%d", &vector_max);
  printf("\nVvedite razmer vectora:");
  scanf("%d", &n);
  int vector[n];
  printf("\nIshodniy Vector:\n");
  m=vector_max-vector_min+1;
  for(i=0; i<n; i++)
  {
    vector[i]=rand()%m+vector_min; // Получение случайного числа в диапазоне от vector_min до vector_max
    printf("%5d", vector[i]);
  }
  printf("\n");
  for(i=0; i<n; i++)
  printf("%5d", vector[i]); 
  l=function(n, vector);
  printf("Srednee arifmeticheskoe znachenie majdu vtorim max i vtorim min=%0.5",l);
}
void function (int n, int j, int tmp, int *vector, int x)
{
    int i, one, two, k=0, summ=0, *l;
    one=two=*vector;
    printf("\n");
    for(i=0; i<n; i++)
    printf("%5d", *vector);
 
    i=0; 
    k=0; 
    one=0;
    two=0; 
    int r=0; 
    int fabs (int num)
    r=*vector - x;
    
for (i=1;i<n;i++)
    { 
        k=(*(vector+i)- x); 
        
        if (fabs(k) > abs(l)) 
        {
            r = k; 
            one =*(vector+i); 
        }
        else 
        if (fabs(k) < abs(l)) 
        {
            r = k; 
            two =*(vector+i); 
        }
    } 
for(i=0; i<n; i++)
        {
         printf("%5d", *vector);
         printf("\none=%d\n", one); // Выводим найденные элементы на экран
         printf("\ntwo=%d\n", two);
        }
    for(i=((one)+1); i<one; i++)
       {
        summ+=*(vector+i);
        k++; //считаем кол-во элементов которые мы суммируем для получения ср. арифметич. знач.
        printf("\nk=%d\n", k);
       }
        for(i = 0; i < size - 1; ++i) // i - номер прохода
    {            
        for(j = 0; j < size - 1; ++j) // внутренний цикл прохода
        {     
            if (arr[j + 1] < arr[j]) 
            {
                tmp = arr[j + 1]; 
                arr[j + 1] = arr[j]; 
                arr[j] = tmp;
            }
        }
    }
}

Последний раз редактировалось Serge_Bliznykov; 04.04.2016 в 15:19.
marksosof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив 12 элементов,случайные положительные и отрицательные. Найти элемент наиболее близкий к среднему значению(Паскаль 1998y8m1d Помощь студентам 6 16.12.2013 17:06
C++.Определите среднее значение элементов массива Х(20). Найдите индекс элемента массива, наиболее близкого к среднему значению. dunhill55 Помощь студентам 1 16.12.2012 19:02
вычислить порядковый номер числа наиболее приближенного к среднему арифметическому максимального и минимального чисел данной посл мария71 Помощь студентам 2 14.02.2012 16:24
EXSEL (VBA) найти элемент наиболее близкий к среднему значению элементов массива Lady_Deluxe Помощь студентам 0 16.06.2009 13:45