Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 4
.NET 4.x

Включить в массив числа, расположив их после второго нулевого элемента

21.01.2016, 08:02. Показов 711. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В массив целых чисел включить числа B1, B2, B3, расположив их
после второго нулевого элемента.
вот что у меня получилось.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
 
namespace СonsoleApplication2
{ 
class Program 
{ 
static void Main() 
{ 
int[] arr = new int[20]; 
Random r = new Random(); 
 
Console.WriteLine("Начальный массив:"); 
for (int i = 0; i < arr.Length; i++) 
{ 
arr[i] = r.Next(0, 9); 
Console.Write("{0} ", arr[i]); 
}
Console.WriteLine(" "); 
        var count = 0; 
var secondZeroIndex = 0; 
for (var i = 0; i < arr.Length; i++) 
{ 
if (arr[i] == 0) 
count++; 
if (count == 2) 
{ 
secondZeroIndex = i; 
break; 
} 
} 
if (count < 2) 
{ 
Console.WriteLine("В массиве отсутствует второй ноль");
return;
}
int B1 = 6;
int B2 = 7;
int B3 = 8;
int[] newArray = new int[arr.Length + B1 + B2 + B3];
 
for (var i = 0; i <= secondZeroIndex; i++)
    newArray[i] = arr[i];
secondZeroIndex++;
for (var i = 0; i < B1 + B2 + B3; i++)
    newArray[secondZeroIndex + i] = i ;
for (var i = 0; i < newArray[i + secondZeroIndex] + B1 + B2 + B3; i++)
    /*
    newArray[secondZeroIndex + B1 + B2 + B3 + i] = arr[secondZeroIndex [i] +B1 + B2 + B3;*/
    Console.Write("{0} ", newArray[i]);
Console.WriteLine("Вставка успешно выполнена!");
Console.ReadKey();  
} 
} 
}
Добавлено через 26 минут
нужно поправить вывод второго массива! я что-то запарил
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.01.2016, 08:02
Ответы с готовыми решениями:

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

В массив целых чисел включить B1, B2,B3, расположить их после второго нулевого элемента
решить в C# в массив целых чисел включить B1, B2,B3, расположить их после второго нулевого элемента сделать надо в консольном режиме ,...

В новый массив включить числа, которые расположены после последнего нулевого элемента
2. Дано натуральное число n, целые числа . В новый массив включить числа, которые расположены после последнего нулевого элемента при...

7
44 / 33 / 14
Регистрация: 27.04.2012
Сообщений: 153
21.01.2016, 09:05
Что-то я вообще не пойму что вы сделали. Если вам надо вставить три числа после второго нуля, то зачем это?
C#
1
int[] newArray = new int[arr.Length + B1 + B2 + B3];
Зачем вы делаете новый массив длиной 20+6+7+8=41, если надо 23?
И исправляя вашу реализацию. Я так понимаю, 3 цикл добавляет оставшиеся элементы 1 массива. Тогда как-то надо делать. Топорно, но должно сработать.
C#
1
2
3
4
5
for (var i = secondZeroIndex; i < arr.Length; i++)
{
    newArray[secondZeroIndex + B1 + B2 + B3 + (i-secondZeroIndex)] = arr[i];
    Console.Write("{0} ", newArray[secondZeroIndex + B1 + B2 + B3 + (i-secondZeroIndex)]);
}
0
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 4
22.01.2016, 11:19  [ТС]
видимо я что-то неправильно делаю. но не работает
0
44 / 33 / 14
Регистрация: 27.04.2012
Сообщений: 153
22.01.2016, 11:45
Ivannkz, что не работает? в каком месте? какая ошибка? я же не телепат.
0
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 4
22.01.2016, 11:59  [ТС]
вместо вставки в начальный массив, он выводит часть массива после второго ноля.
0
44 / 33 / 14
Регистрация: 27.04.2012
Сообщений: 153
22.01.2016, 13:22
Ivannkz, вставка и вывод разные вещи. он всё вставляет, только вывод у вас изначально был только в третьем цикле, а там как раз последняя часть массива, а я ничего не добавлял.
Из 3 цикла удалить
C#
1
Console.Write("{0} ", newArray[secondZeroIndex + B1 + B2 + B3 + (i-secondZeroIndex)]);
После него вставить это
C#
1
2
3
foreach(int item in newArray){
Console.Write(item + " ");
}
0
0 / 0 / 0
Регистрация: 21.01.2016
Сообщений: 4
22.01.2016, 14:00  [ТС]
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
 
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace СonsoleApplication2
{
    class Program
    {
 
        public static int i { get; set; }
        static void Main()
        {
            int[] arr = new int[20];
            Random r = new Random();
 
            Console.WriteLine("Начальный массив:");
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = r.Next(0, 9);
                Console.Write("{0} ", arr[i]);
            }
            Console.WriteLine(" ");
            var count = 0;
            var secondZeroIndex = 0;
            for (var i = 0; i < arr.Length; i++)
            {
                if (arr[i] == 0)
                    count++;
                if (count == 2)
                {
                    secondZeroIndex = i;
                    break;
                }
            }
            if (count < 2)
            {
                Console.WriteLine("В массиве отсутствует второй ноль");
                return;
            }
            else
            {
                int B1 = 6;
                int B2 = 7;
                int B3 = 8;
                int[] newArray = new int[23];
 
                for (var i = 0; i <= secondZeroIndex; i++)
                {
                    newArray[i] = arr[i];
                }
 
                newArray[secondZeroIndex+1] = B1;
                newArray[secondZeroIndex+2] = B2;
                newArray[secondZeroIndex+3] = B3;
 
                for (var i = secondZeroIndex + 4; i < newArray.Length; i++)
                {
                    newArray[i] = arr[i-3];
                }
 
                Console.WriteLine("Дочерний массив:");
                for (int i = 0; i < newArray.Length; i++)
                {
                    Console.Write("{0} ", newArray[i]);
                }
 
                Console.ReadKey();
            }
        }
    }
}
Добавлено через 53 секунды
вот как перекроил) пусть лежит для новых поколений)
0
44 / 33 / 14
Регистрация: 27.04.2012
Сообщений: 153
22.01.2016, 14:30
Ivannkz, маленькие замечания:
1. Удалить продублированныые и лишние библиотеки.
2. public static int i { get; set; } - в текущем контексте было бы достаточно static int i. И она у вас нигде не используется, поэтому не нужна.
3. Вместо var лучше использовать определенные типы. У вас тут везде int.
4. По желанию, я бы в выводе использовал foreach, как я и написал выше. Да и в инициализации массива тоже можно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2016, 14:30
Помогаю со студенческими работами здесь

Определить количество элементов в массиве после второго нулевого элемента
Ребят, помогите пожалуйста Сколько элементов в массиве А(n) после 2 нулевого элемента? n=7 A(0,4,5,0,3,2,7) В массиве А(n) найти...

Преобразовать массив, упорядочив по убыванию все элементы, стоящие после второго нулевого
Ввести массив K(N). Вывести его. Преобразовать массив, упорядочив по убыванию все элементы, стоящие после второго нулевого. Вывести...

В массиве А определить 5 наибольших значений и, расположив их по убыванию, вставить в массив В после его наименьшего элемента
1. Даны два массива А(n) и B(m) целых чисел. В массиве А определить 5 наибольших значений и, расположив их по убыванию, вставить в массив В...

Дан массив Z(17). Найти количество отрицательных элементов после третьего нулевого элемента.
1. Дан массив Z(17). Найти количество отрицательных элементов после третьего нулевого элемента. 2. Дан массив А(16). Найти Произведение...

Сортировка массива до второго нулевого элемента
задание такое. отсортировать по возрастанию значений элемента до второго нулевого элемента (если нулей меньше двух - сортировать по...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru