Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
1 / 1 / 1
Регистрация: 12.11.2018
Сообщений: 72

Одномерный массив, состоящий из n вещественных элементов

12.11.2018, 17:31. Показов 6640. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем! Не совсем разбираюсь в C# да и программировании в целом, задали лабы, как заочнику. Окажите помощь, пожалуйста..

Задача звучит следующим образом:
"В одномерном массиве, состоящем из n вещественных элементов, вычислить:
- количество элементов массива, меньших C;
- сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом - все остальные."

В форуме нарыл, две задачки, которые очень похожи, разве что условия различаются и в каждой из них есть, то что мне нужно. Просидел целый день, так и не смог их объединить в одну, всё получал ошибки
1. Одномерный массив, состоящий из n вещественных элементов
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
35
36
37
38
39
40
41
42
43
        static void Main(string[] args)
        {
            Console.WriteLine("Введите количество элементов массива");
            int n = int.Parse(Console.ReadLine());
            double[] a = new double[n];
            Random rand = new Random();
            int i = 0;
            for (i = 0; i < n; i++)
            {
                a[i] = rand.Next(-50, 100);
                Console.Write("{0,4}", a[i]);
            }
            Console.WriteLine();
            int k = 0;
            Console.WriteLine(" Введите С");
            double C = double.Parse(Console.ReadLine());
            
            for (i = 0; i < n; i++)
                if (a[i] > C)
                     k++;
     
            Console.WriteLine("Количество чисел больших С= {0}", k);
 
            var max = a.Max();
            Console.WriteLine("MAX= {0}", max);
 
            int l = Array.IndexOf(a, max);
            double sum = 0;
            for (i = l+1; i < n; i++)
                sum+=a[i];
 
            Console.WriteLine("Cумма чисел расположенных после MAX= {0}", sum);
 
            Array.Sort(a);
            Console.WriteLine("Упорядоченный массив");
            for (i = 0; i < n; i++)
            {
                 Console.Write("{0,4}", a[i]);
            }
            Console.WriteLine();
 
            Console.ReadKey();
        }
2. Определить, сколько чисел встречается в массиве более, чем по одному разу
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace massiv
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите количество элементов массива:");
            Console.WriteLine();
 
            int count = int.Parse(Console.ReadLine());
            Console.WriteLine();
 
            int[] array = new int[count];
            Random r = new Random();
 
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = r.Next(50);
            }
 
            Console.Write("Исходный массив: ");
            foreach (int i in array)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
 
            List<int> repeatNumbers = new List<int>();
            bool isAlreadyRepeated = false;
 
            for (int i = 0; i < array.Length; i++)
            {
                for (int j = i + 1; j < array.Length; j++)
                {
                    if (array[i] == array[j])
                    {
                        foreach (int item in repeatNumbers)
                        {
                            if (array[i] == item)
                            {
                                isAlreadyRepeated = true;
                            }
                        }
 
                        if (isAlreadyRepeated == false)
                        {
                            repeatNumbers.Add(array[i]);
                        }
 
                        isAlreadyRepeated = false;
                    }
                }
            }
            Console.WriteLine();
 
            Console.Write("Количество повторяющихся чисел: " + repeatNumbers.Count() + ". ");
            Console.Write("Эти числа: ");
 
            foreach (int item in repeatNumbers)
            {
                Console.Write(item + " ");
            }
 
            Console.WriteLine();
            Console.WriteLine();
 
            int maxNumber = int.MinValue;
            int maxIndex;
 
            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] > maxNumber)
                {
                    maxNumber = array[i];
                    maxIndex = i;
                }
            }
 
            double lowBorder = maxNumber - maxNumber * 0.2;
            double highBorder = maxNumber + maxNumber * 0.2;
 
            for (int i = 0; i < array.Length; i++)
            {
                for (int j = array.Length - 1; j > i; j--)
                {
                    if ((array[j] >= lowBorder) && (array[j] <= highBorder))
                    {
                        int temp = array[j - 1];
                        array[j - 1] = array[j];
                        array[j] = temp;
                    }
                }
            }
 
            Console.WriteLine("Максимальное число в массиве: " + maxNumber);
            Console.WriteLine();
 
            Console.Write("Отсортированный массив: ");
            foreach (int item in array)
            {
                Console.Write(item + " ");
            }
 
            Console.ReadLine();
        }
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2018, 17:31
Ответы с готовыми решениями:

Одномерный массив, состоящий из n вещественных элементов
Ниже дан кон который успел набросать, но его нужно доработать в том же духе без мудреных и сокращенных вариантов) Помогите пожалуйста, я...

Одномерный массив, состоящий из n вещественных элементов
К сожалению не много смыслю в С#, да в добавок мешает думать острое отравление, помогите пожалуйста с лабой. В одномерном массиве,...

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

7
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
13.11.2018, 09:09
Лучший ответ Сообщение было отмечено Dr_Mann как решение

Решение

По идее так:
Кликните здесь для просмотра всего текста
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
35
36
37
38
39
40
41
42
43
44
            Console.WriteLine("Введите количество элементов массива");
            int n = int.Parse(Console.ReadLine());
            double[] a = new double[n];
            Random rand = new Random();
            int i = 0;
            double max=-51;
            int sum=-1;
            for (i = 0; i < n; i++)
            {
                a[i] = rand.Next(-50, 100);
                Console.Write("{0,4}", a[i]);
                if (a[i]<0) sum=0;
                else{ if(sum>=0) sum+=a[i];}
                if (max<a[i]) max=a[i];
            }
            Console.WriteLine();
            Console.WriteLine("Сумма элементов после последнего отрицательного:{0}",sum);
            int k = 0;
            Console.Write(" Введите С:");
            double C = double.Parse(Console.ReadLine());
            
            for (i = 0; i < n; i++)
                if (a[i] < C)
                     k++;
              Console.WriteLine("Количество чисел меньше числа С= {0}", k);
            max = max - max/5;
            int lasti=0;
            for (i=0; i<n; i++)
            {
               if (a[i]>=max)
                  {
                     double buf = a[lasti];
                     a[lasti]=a[i];
                     a[i]=buf;
                     lasti++; 
                  } 
             }
            Console.Write("Отсортированный массив: ");
            for (i=0; i<n; i++)
            {
                   Console.Write("{0} ",a[i]);
            }
             Console.WriteLine();
             Console.ReadLine();
1
1 / 1 / 1
Регистрация: 12.11.2018
Сообщений: 72
13.11.2018, 12:04  [ТС]
Aferuga, Добрый день, спасибо, что откликнулись на мое сообщение!
В 13 строке
Цитата Сообщение от Aferuga Посмотреть сообщение
else{ if(sum>=0) sum+=a[i];}
получаю ошибку: "Не удается неявно преобразовать тип "double" в "int". Существует явное преобразование (возможно, пропущено приведение типов)"
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
14.11.2018, 04:14
Dr_Mann, в 7 строке вместо int надо double указать.
1
1 / 1 / 1
Регистрация: 12.11.2018
Сообщений: 72
14.11.2018, 15:04  [ТС]
Aferuga, Спасибо большое, все получилось !
0
1 / 1 / 1
Регистрация: 12.11.2018
Сообщений: 72
12.12.2018, 16:38  [ТС]
Aferuga, Здравствуйте, подскажите, пожалуйста, в каких строчках вашего кода идет "сортировка элементов отличающиеся от максимального не более чем на 20%, а потом - все остальные." Спасибо!
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
13.12.2018, 03:51
Dr_Mann, в целом это 26-37 строка, а сам процент по сути задается в 26ой.
0
1 / 1 / 1
Регистрация: 12.11.2018
Сообщений: 72
13.12.2018, 11:17  [ТС]
Aferuga, Получается после этого преобразования "max = max - max/5;" получается эти 20% по условию задачи? Если подставить числа в это выражение, действительно так получается, все хитро продумано
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2018, 11:17
Помогаю со студенческими работами здесь

Упорядочить одномерный массив состоящий из n вещественных элементов
Помогите так и не получается Упорядочить одномерный массив состоящий из n вещественных элементов сначала упорядочить по возврастанию...

Преобразовать массив, состоящий из n вещественных элементов
Здравствуйте! Помогите преобразовать массив , состоящий из n вещественных элементов) У меня изначально был int, я заменила на double,...

Объявить одномерный массив массивов, состоящий из нескольких элементов
Здравствуйте. Мне нужно объявить одномерный массив массивов, состоящий из нескольких элементов. int jaggedArray4 = new int { ...

Сформировать одномерный массив В[К], состоящий из отрицательных элементов массива А
Задан массив А размером N на M Сформировать одномерный массив В, состоящий из отрицательных элементов массива А, и подсчитать их сумму.

Дан одномерный массив А, состоящий из N целых чисел. Переписать из него в одномерный массив В все нечетные числа
У меня есть задание: Дан одномерный массив А, состоящий из N целых чисел. Переписать из него в одномерный массив В все нечетные числа. Если...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru