Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 03.10.2017
Сообщений: 73

Найти элемент массива, наиболее приближенный к среднему значению

03.10.2017, 19:59. Показов 8613. Ответов 10

Студворк — интернет-сервис помощи студентам
Дан массив, состоящий из целых чисел. Его размер не превышает 1000 элементов. Вводят этот массив, используя стандартный поток ввода. Первым делом вводят длинну массива (N) - натуральное число. Затем следует N целых чисел (не выходят за диапазоны int) - элементы массива. Нужно найти и распечатать в стандартный поток единственное число(число является элементом массива и наиболее приближено к среднему значению . Натолкните хотя бы на мысль, а я даже сути задания не понимаю
примеры входных данных:
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2017, 19:59
Ответы с готовыми решениями:

Найти элемент, наиболее близкий к среднему значению всех элементов массива
Дан массив целых чисел. Найти элемент , наиболее близкий к среднему значению всех элементов массива.. Вот мой код, Наверняка есть...

Найти среднее арифметическое массива и максимально приближенный к этому среднему арифметическому элемент
Необходимо создать массив, отсортировать массив 2 способами, найти среднее арифметическое массива и максимально приближенный к этому...

Найти число наиболее приближенное к среднему значению массива
Здравствуйте, задание было в следующем Дан массив, состоящий из целых чисел. Его размер не превышает 1000 элементов. Вводят этот массив,...

10
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
03.10.2017, 22:33
nilsonafter,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <cstdio>
#include <cmath>
 
const int MAX_SIZE = 1000;
 
int main()
{
    int n = 0;
    int arr[MAX_SIZE] = { 0 };
    long int middle = 0;
    int closest = 0, diff = 0;
    printf("Enter the number of elements: ");
    scanf_s("%d", &n);
    for (int i = 0; i < n; i++)
    {
        printf("Enter the element #%d: ", i+1);
        scanf_s("%d", &arr[i]);
        middle += arr[i];
    }
    middle = middle / n;
    diff = abs(middle - arr[0]);
    closest = arr[0];
    for (int i = 1; i < n; i++)
    {
        if (abs(middle - arr[i]) < diff)
        {
            diff = abs(middle - arr[i]);
            closest = arr[i];
        }       
    }
    printf("Middle: %d\nClosest to middle: %d\n", middle, closest);
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 03.10.2017
Сообщений: 73
03.10.2017, 23:01  [ТС]
_SayHello,
выдает данную ошибку: system - данный идентификатор не найден.
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
03.10.2017, 23:15
Лучший ответ Сообщение было отмечено nilsonafter как решение

Решение

nilsonafter,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "stdio.h"
#include "math.h"
#include "conio.h"
const int MAX_SIZE = 1000;
 
int main()
{
    int n = 0;
    int arr[MAX_SIZE] = { 0 };
    long int middle = 0;
    int closest = 0, diff = 0;
    printf("Enter the number of elements: ");
    scanf_s("%d", &n);
    for (int i = 0; i < n; i++)
    {
        printf("Enter the element #%d: ", i+1);
        scanf_s("%d", &arr[i]);
        middle += arr[i];
    }
    middle = middle / n;
    diff = abs(middle - arr[0]);
    closest = arr[0];
    for (int i = 1; i < n; i++)
    {
        if (abs(middle - arr[i]) < diff)
        {
            diff = abs(middle - arr[i]);
            closest = arr[i];
        }       
    }
    printf("Middle: %d\nClosest to middle: %d\n", middle, closest);
    _getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 03.10.2017
Сообщений: 73
03.10.2017, 23:43  [ТС]
_SayHello, а в чем заключается работа этой программы? меня просят ввести номера элементов по очереди. а по заданию должно выводиться число наиболее приближенное к среднему значению. извините, если глупый вопрос. просто я 1 курсник, еще много чего не знаю)
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
03.10.2017, 23:52
nilsonafter, Ну для того, чтобы что-то вывелось, нужно сначала, что-то ввести. Сначала определяешь размер массива, далее заполняешь его числами типа int, потом находишь среднее по массиву. Ну и дальше ищешь какой элемент массива ближе всего (по величине) к расчитанному среднему. Можешь убрать вывод среднего, оставить только наиболее близкого.
0
0 / 0 / 0
Регистрация: 03.10.2017
Сообщений: 73
03.10.2017, 23:58  [ТС]
_SayHello, как будет выглядеть код без среднего?
так?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "stdio.h"
#include "math.h"
#include "conio.h"
const int MAX_SIZE = 1000;
 
int main()
{
    int n = 0;
    int arr[MAX_SIZE] = { 0 };
    
    int closest = 0, diff = 0;
    printf("Number elements: ");
    scanf_s("%d", &n);
    for (int i = 0; i < n; i++)
    {
        printf("Number elements #%d: ", i+1);
        scanf_s("%d", &arr[i]);
        
    }
    
    diff = abs(middle - arr[0]);
    closest = arr[0];
    for (int i = 1; i < n; i++)
    {
        
        {
            d;
            closest = arr[i];
        }       
    }
    printf("Middle: %d\nClosest to middle: %d\n", middle, closest);
    _getch();
    return 0;
}
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
04.10.2017, 00:01
nilsonafter, убрать вывод, а не расчет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "stdio.h"
#include "math.h"
#include "conio.h"
const int MAX_SIZE = 1000;
 
int main()
{
    int n = 0;
    int arr[MAX_SIZE] = { 0 };
    long int middle = 0;
    int closest = 0, diff = 0;
    printf("Enter the number of elements: ");
    scanf_s("%d", &n);
    for (int i = 0; i < n; i++)
    {
        printf("Enter the element #%d: ", i+1);
        scanf_s("%d", &arr[i]);
        middle += arr[i];
    }
    middle = middle / n;
    diff = abs(middle - arr[0]);
    closest = arr[0];
    for (int i = 1; i < n; i++)
    {
        if (abs(middle - arr[i]) < diff)
        {
            diff = abs(middle - arr[i]);
            closest = arr[i];
        }       
    }
    printf("Closest to middle: %d\n", closest);
    _getch();
    return 0;
}
0
5 / 5 / 0
Регистрация: 18.11.2011
Сообщений: 92
04.10.2017, 00:06
nilsonafter, хм, судя по тому, что вопрос задан в разделе "Си", ты компилируешь его на компиляторе под Си, а код,_SayHello, на С++.

nilsonafter,
Цитата Сообщение от nilsonafter Посмотреть сообщение
Дан массив, состоящий из целых чисел. Его размер не превышает 1000 элементов. Вводят этот массив, используя стандартный поток ввода. Первым делом вводят длинну массива (N) - натуральное число. Затем следует N целых чисел (не выходят за диапазоны int) - элементы массива. Нужно найти и распечатать в стандартный поток единственное число(число является элементом массива и наиболее приближено к среднему значению . Натолкните хотя бы на мысль, а я даже сути задания не понимаю
Например дан массив: 1, 2, 5, 7, 9 , 18. Среднее арифметическое : 42/6 = 7
Теперь в массиве ищем число, которое будет максимальное приближенно к 7.

_SayHello, объясни, пожалуйста, зачем ты ищешь среднее арифметическое по модулю, а потом находишь разницу среднего арифметического по модулю и первого элемента массива? Дальнейшая логика действий не понятно или я туплю, объясни.
0
 Аватар для _SayHello
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
04.10.2017, 00:15
OlimpMishka, написано все на чистейшем Си через _getch();.
В смысле по модулю среднее арифметическое по модулю?
Цитата Сообщение от OlimpMishka Посмотреть сообщение
Например дан массив: 1, 2, 5, 7, 9 , 18. Среднее арифметическое : 42/6 = 7
Теперь в массиве ищем число, которое будет максимальное приближенно к 7.
смысле по модулю среднее арифметическое по модулю?
А как вы определили, что ближайшее 7? В вашем примере это интуитивно понятно, а если я дам массив 2143, 21, 34456, 334456, 33, 2345... и так 1000 элементов, как объяснить программе какое число из массива наиболее близко к среднему?
Находится разница между каждым элементом массива и средним значением, у какого элемента минимальная разница, тот и ближе, причем берется абсолютное значение (модуль) так как скажем если среднее 7 и два элемента скажем 9 и 6, для первого разница будет -2, а для второго 1. -2 меньше 1 и тогда по логике получается что 9 ближе к 7 чем 6, поэтому и берется абсолютное отклонение.
0
5 / 5 / 0
Регистрация: 18.11.2011
Сообщений: 92
04.10.2017, 00:50
_SayHello, извиняюсь, еще не в курсе таких возможностей( как _getch().

Ааа, понял, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.10.2017, 00:50
Помогаю со студенческими работами здесь

Поменять местами последний элемент массива с элементом, который ближе всего находится к среднему значению
1.Дан массив целых чисел, состоящий из N элементов(N=20). Поменять местами последний элемент с элементом, который ближе всего находится к...

В двумерном массиве целых чисел найти элемент, который ближе всего находится к среднему значению его положительных чисел
надо в двумерном массиве целых чисел найти элемент, который ближе всего находится к среднему значению его положительных чисел.проблема в...

Указатели: Поменять местами последний элемент с элементом, который ближе всего находится к среднему значению
Помогите пожалуйста. Дан массив целых чисел, состоящий из N элементов(N=20). Поменять местами последний элемент с элементом, который...

Найти наиболее и наименее удаленный от среднего арифметического элемент массива
вывести информацию о наиболее и наименее удаленных от среднего арифметического члена последовательность вещественных чисел

Найти элемент, наиболее близкий к среднему значению всех элементов массива
Задача Найти элемент, наиболее близкий к среднему значению всех элементов массива. Я не знаю, как найти наиболее близкое значение. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru