1 / 1 / 1
Регистрация: 12.11.2017
Сообщений: 71
1

Записать индексы тех элементов исходного массива, которые больше среднего значения всех элементов массива

15.11.2017, 10:45. Показов 4129. Ответов 5
Метки нет (Все метки)

Составить новый массив и вывести на экран, в который записать индексы тех элементов исходного массива, которые больше среднего значения всех элементов массива. Не могу применить foreach и вывести этот массив, все какие то ошибки выскакивают
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
int[] a;   // массив
            int i;          // переменная цикла
            int n;          // размер массива не более 100 элементов
         
            string temp;
 
              do
                {
                    Console.Write("\nКоличество элементов массива=");
                    temp = Console.ReadLine();
                    n = Convert.ToInt32(temp);
                } while (n > 10 || n < 2);
                // ввод элементов массива
 
                a = new int[n];
                for (i = 0; i < n; i++)
                {
                    Console.Write("Элемент номер " + i + " = ");
                    temp = Console.ReadLine();
                    a[i] = Convert.ToInt32(temp);
                }
                Console.WriteLine();
 
                int sum = 0;
                int srd1;
                for (i = 0; i < n; i++)
                {
                    sum += a[i];
                }
                srd1 = sum / (n);
                Console.Write("Cреднего значения всех элементов массива=" + srd1);
            
            Console.ReadKey();
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2017, 10:45
Ответы с готовыми решениями:

Найти индексы тех элементов массива, значения которых больше значения предыдущего элемента
Дан массив 20 целых чисел. Элементы массива вводить с клавиатуры. Найти индексы тех элементов,...

Определить индексы тех элементов массива, которые больше своего правого соседа
Здравствуйте. дали задание по C# а как сделать без понятия( Дан массив n. Определить индексы...

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

Из массива удалить четные элементы, имеющие значение больше среднего арифметического всех элементов массива.
Из массива удалить четные элементы, имеющие значение больше среднего арифметического всех элементов...

5
555 / 532 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
15.11.2017, 10:59 2
Цитата Сообщение от Ivan2117 Посмотреть сообщение
Составить новый массив и вывести на экран, в который записать индексы тех элементов исходного массива, которые больше среднего значения всех элементов массива
C#
1
int[] b = a.Where(n=>n>srd1).ToArray();
0
51 / 49 / 26
Регистрация: 15.06.2009
Сообщений: 388
15.11.2017, 11:01 3
Цитата Сообщение от Ivan2117 Посмотреть сообщение
Не могу применить foreach и вывести этот массив, все какие то ошибки выскакивают
C#
1
2
foreach (int element in b)
    Console.WriteLine(element);
0
1 / 1 / 1
Регистрация: 12.11.2017
Сообщений: 71
15.11.2017, 11:07  [ТС] 4
Вот сделал по примерам, но выходят значения , а не индексы
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
 int[] a;   // массив
            int i;          // переменная цикла
            int n;          // размер массива не более 100 элементов
 
            string temp;
 
            do
            {
                Console.Write("\nКоличество элементов массива=");
                temp = Console.ReadLine();
                n = Convert.ToInt32(temp);
            } while (n > 10 || n < 2);
            // ввод элементов массива
 
            a = new int[n];
            for (i = 0; i < n; i++)
            {
                Console.Write("Элемент номер " + i + " = ");
                temp = Console.ReadLine();
                a[i] = Convert.ToInt32(temp);
            }
            Console.WriteLine();
 
 
            double mean = Convert.ToDouble(a.Sum()) / a.Length;
            int[] output = (from x in a where x > mean select x).ToArray();
            foreach (int x in output) Console.WriteLine(x);
 
            Console.ReadKey();
0
Эксперт .NET
5857 / 4734 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
15.11.2017, 11:26 5
Лучший ответ Сообщение было отмечено Ivan2117 как решение

Решение

Ivan2117,
C#
1
2
3
4
double mean = a.Average();
int[] output = a.Select((item, index) => new { Item = item, Index = index })
        .Where(x => x.Item > mean).Select(x => x.Index).ToArray();
Console.WriteLine(string.Join(" ", output));
1
555 / 532 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
15.11.2017, 11:34 6
Цитата Сообщение от Ivan2117 Посмотреть сообщение
но выходят значения , а не индексы
Аааа! Нужны были индексы? Сорри, недоглядел задание...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2017, 11:34
Помогаю со студенческими работами здесь

Сформировать массив, состоящий из тех элементов исходного массива, которые меньше своего левого соседа
Дан массив вещественных чисел. Сформировать новый массив, состоящий из тех элементов исходного...

Определить индексы элементов массива меньших среднего результат вывести в виде массива
определить индексы элементов массива меньших среднего результат вывести в виде массива Заранее...

Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элем
Дан массив размера N. Найти номера тех элементов массива, которые больше своего правого соседа, и...

Количество элементов массива, больших среднего арифметического всех его элементов
Нужно Составить программу определения количества элементов массива, больших среднего...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru