|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
04.04.2016, 12:54 | #1 (permalink) |
Новичок
Регистрация: 04.04.2016
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
В векторе найти два элемента, наиболее близкие к среднему арифметическому
Желательно с пояснениями. Создать процедуру, определяющую в целочисленном векторе vectorn два элемента, наиболее близкие к среднему арифметическому всех элементов вектора. Элементы, расположенные между ними, отсортировать по возрастанию. Наброски кода есть, но код бредовый. [C] #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; } } } }[/C] Сортировку и определение среднего арифметического нужно реализовать в одной подпрограмме, а не выносить в отдельную. |
04.04.2016, 12:54 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Наверняка в похожих топиках вы найдете много полезной для себя информации Помогите найти ошибку, неправильно выводит номер первого максимального элемента Найти номер последнего минимального элемента среди четных положительных...(СИ) ассемблер. удаление элемента массива (помогите найти ошибку) СРОЧНО,ДО ЗАВТРА!! Наиболее ожидаемая игра |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|