Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/315: Рейтинг темы: голосов - 315, средняя оценка - 4.90
0 / 0 / 1
Регистрация: 30.07.2016
Сообщений: 122
1

Заполнение массива циклом

02.11.2016, 10:36. Показов 64767. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Я новичок. Помогите пожалуйста сделать вот что. Заполнить массив циклом от 0 до 99 и вывести каждый индекс массива на консоль. Спасибо.

Добавлено через 1 минуту
Если можно, то, после цикла for, сделайте тоже самое с циклом while.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2016, 10:36
Ответы с готовыми решениями:

Заполнение массива значениями циклом "for()"
Камрады, подскажите что у меня не так. задача такова, создать 2х мерный массив и заполнить его с...

Заполнение динамического массива циклом For.
вырезал часть кода //================================GLOBAL...

Заполнение массива указателей циклом
И снова здравствуйте! Пожалуйста, подробно и доступно объясните почему не работает код #pragma...

Заполнение массива в определённые ячейки (циклом)
Нужно сделать тоже самое (что в приложенном коде), но чтобы это выполнялось в цикле. По сути, надо...

15
Администратор
Эксперт .NET
17553 / 13776 / 5298
Регистрация: 17.03.2014
Сообщений: 28,253
Записей в блоге: 1
02.11.2016, 10:44 2
Native16, будет гораздо полезнее если такую простую задачу ты решишь самостоятельно. Ориентируйся на примеры из книг по теме циклы и массивы.
0
9 / 9 / 12
Регистрация: 26.09.2016
Сообщений: 180
02.11.2016, 17:00 3
Так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int[] a = new int[100];
            Random random = new Random();
            Console.Write("Массив: ");
            for (int i = 0; i < a.Length; i++)
            {
                a[i] = random.Next(100);               
                Console.Write("{0} ", a[i]);               
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.Write("Индексы: ");
            for (int i = 0; i < a.Length; i++)
            {
                Console.Write("{0} ", i + 1);
            }
            Console.WriteLine();
Если индексирование надо с нуля, то "i + 1", замени на "i"

Добавлено через 25 минут
Через while как-то так)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int[] a = new int[100];
            Random random = new Random();
            Console.Write("Массив: ");
            int i = -1;
            while(i++ < 99)
            {
                a[i] = random.Next(100);               
                Console.Write("{0} ", a[i]);               
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.Write("Индексы: ");
            i = -1;
            while(i++ < 99)
            {
                Console.Write("{0} ", i + 1);
            }
            Console.WriteLine();
1
0 / 0 / 1
Регистрация: 30.07.2016
Сообщений: 122
02.11.2016, 19:22  [ТС] 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
using System;
 
namespace FirstProgram
{
    class Program
    {
        static void Main()
        {
            int a = 0; // Счётчик цикла.
            int b = 0; // Число, которое изменяет индекс массива "d".
            int c = 0; // Значение, которое записывается в массив.
            int[] d = new int[5]; // Массив.
 
            while (a < 20)
            {
                d[b] = c; // Записывается значение "c" в индекс "b" массива "d".
                Console.WriteLine(d[b]);
                c = c + 1;
 
                a = a + 1; // Счётчик цикла.
            }
            Console.ReadKey();
        }
    }
}
Добавлено через 57 секунд
Всё равно выводит значения от 0 до 19, когда размерность массива равна 5. То есть может вмещать в себя только пять значений.

Добавлено через 3 минуты
Добавил ещё одну строчку и заработало как надо. Я гений!
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
using System;
 
namespace FirstProgram
{
    class Program
    {
        static void Main()
        {
            int a = 0; // Счётчик цикла.
            int b = 0; // Число, которое изменяет индекс массива "d".
            int c = 0; // Значение, которое записывается в массив.
            int[] d = new int[5]; // Массив.
 
            while (a < 20)
            {
                d[b] = c; // Записывается значение "c" в индекс "b" массива "d".
                Console.WriteLine(d[b]); // Выводим значение индекса "b" на консоль.
                b = b + 1; // Изменяем индекс на +1.
                c = c + 1; // Изменяем значение на +1.
                           // После того, как первый цикл завершится текущие значения "b" и "c" изменятся на +1. То есть был 0, а стал 1.
                           // И новое значение будет использовано в следующем цикле.
 
                a = a + 1; // Счётчик цикла. Заканчивается цикл и идёт по новой, пока значения "а" равны меньше двадцати.
                           // Когда двадцать, тогда цикл прерывается и выполняется следующее действие.
 
            }
            Console.ReadKey();
        }
    }
}
Добавлено через 7 минут
Нет, всё равно какая-то ошибка вылазит! Я не понимаю! Я такой глупый. Буду разбираться.

Добавлено через 3 минуты
От моего "гениального" кода зависла студия.

Добавлено через 8 минут
В общем, когда я ставлю размерность массива меньше счётчика цикла, тогда выходит ошибка. Не хочу спрашивать, как подогнать счётчик к размерности массива. Хотя тут вопрос в другом - зачем изменять размерность, когда смысл в том, чтобы научиться выводить значения записанные в массиве на консоль. А также уметь просить компьютер создавать новые переменные изменяя индекс массива.

Добавлено через 1 минуту
Выглядит всё это так:
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
using System;
 
namespace FirstProgram
{
    class Program
    {
        static void Main()
        {
            int a = 0; // Счётчик цикла.
            int b = 0; // Число, которое изменяет индекс массива "d".
            int c = 0; // Значение, которое записывается в массив.
            int[] d = new int[20]; // Массив.
 
            while (a < 20)
            {
                d[b] = c; // Записывается значение "c" в индекс "b" массива "d".
                Console.WriteLine(d[b]); // Выводим значение индекса "b" на консоль.
                b = b + 1; // Изменяем индекс на +1.
                c = c + 1; // Изменяем значение на +1.
                           // После того, как первый цикл завершится текущие значения "b" и "c" изменятся на +1. То есть был 0, а стал 1.
                           // И новое значение будет использовано в следующем цикле.
 
                a = a + 1; // Счётчик цикла. Заканчивается цикл и идёт по новой, пока значения "а" равны меньше двадцати.
                           // Когда двадцать, тогда цикл прерывается и выполняется следующее действие.
 
            }
            Console.ReadKey();
        }
    }
}
Знатоки, пожалуйста, скажите, что я всё правильно написал, чтобы я смог пойти отдыхать спокойно.
0
212 / 210 / 137
Регистрация: 21.12.2015
Сообщений: 545
02.11.2016, 19:39 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    using System;
    class Program
    {
        static void Main()
        {
            int[] arr = new int[20];
            for (int i = 1; i < arr.Length; i++) 
            {
                arr[i] = i;
                Console.WriteLine(i);
            } 
            Console.ReadKey();
        }
    }
Добавлено через 1 минуту
зачем нужен массив?
C#
1
2
3
4
5
6
7
8
9
10
11
12
    using System;
    class Program
    {
        static void Main()
        {
            for (int i = 1; i < 20; i++) 
            {
                Console.WriteLine(i);
            } 
            Console.ReadKey();
        }
    }
1
0 / 0 / 1
Регистрация: 30.07.2016
Сообщений: 122
02.11.2016, 19:42  [ТС] 6
TuM0xA, я учусь. Я не знаю, что эта фраза говорит Вам, но мне надо было узнать, как заполнять массив циклом. Так как под заполнением массива я понимал, что в коде я написал одну строчку - одну переменную. А компьютер изменяет индекс массива, избавляя меня от создании всех возможных переменных, а создаёт новую пустую переменную, в которую записывается новое значение.
0
212 / 210 / 137
Регистрация: 21.12.2015
Сообщений: 545
02.11.2016, 19:42 7
вот тут нужен массив
C#
1
2
3
4
5
6
7
8
9
10
11
12
    using System;
    class Program
    {
        static void Main()
        {
            int[] arr = new int[100];
            for (int i = 0; i < arr.Length; i++)//записать
                arr[i] = i;
            foreach (int i in arr) Console.WriteLine(i);//считать
            Console.ReadKey();
        }
    }
1
0 / 0 / 1
Регистрация: 30.07.2016
Сообщений: 122
02.11.2016, 19:43  [ТС] 8
Некое автоматическое написание кода для программы компьютером, а не пользователем.
0
212 / 210 / 137
Регистрация: 21.12.2015
Сообщений: 545
02.11.2016, 19:45 9
Native16,
Цитата Сообщение от Native16 Посмотреть сообщение
Некое автоматическое написание кода для программы компьютером, а не пользователем.
переведите
1
0 / 0 / 1
Регистрация: 30.07.2016
Сообщений: 122
02.11.2016, 20:02  [ТС] 10
TuM0xA, можно на ты В предыдущих темах меня один из пользователь назвал нигилистом - человеком, который отрицает общепринятые законы и нормы. Мне нравится программирование и я постоянно думаю о нём Размышляю о разных его вариантах. Я понял, что пользователь пишет код для программы, а компьютер имеет возможность, путём арифметических операций, выполнять действие в автоматическом режиме - циклом. А массив - это обычная переменная, в конце которой находится цифра - индекс. Разные индексы - разные переменные, но тип один - число или текст. Но в данном случае число, так как с числами можно производить арифметические операции. Теперь, когда мы имеем переменную мы можем записать в неё значение. А если надо записать 100 или 1000 значений, то вручную будет затруднительно. Тут мы пользуемся возможностью компьютера - его работой - циклом и сложением чисел, чтобы он за нас изменял индексы в переменной тем самым, как бы создавая новые переменные, в которые будут записаны новые значения. Это некое написание кода из вне программы, но на время существования программы, если данные не были записаны на жёсткий диск. Я не уверен, что Вы что-то поняли, но я объяснил

Добавлено через 6 минут
Так у меня в моём последнем коде всё правильно или нет? А то я жду
0
.NET senior
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
02.11.2016, 20:08 11
Native16, предлагаю начать с самого начала.

1. Вы создали тему в разделе C#

2. C# - объектно-ориентированный ЯП со строгой типизацией

3. массивы в C# - это объекты (внезапно!), представляющие собой контейнеры фиксированного размера определённого типа

4. при создании нового экземпляра массива мы указываем его размер (количество элементов), и в течение времени "жизни" изменить этот размер не можем физически (единственный способ - создание нового экземпляра массива)

5. массивы могут быть совершенно разных типов:

C#
1
2
3
4
5
double[] array = new double[10]; // массив типа double из 10 элементов
 
string[][] lines = new string[20][]; // и это массив типа string[] (да, массив - это тоже тип данных, наравне с другими!) из 20 элементов
 
int[][][] numbers = new int[9000][][]; // и это тоже массив! длиной 9000 типа int[][]
6. когда мы пишем цикл - Вы (я, кто-либо другой, одним словом - разработчик) пишете цикл, реализуете какой-то нужный Вам алгоритм, компьютер здесь выступает в качестве пассивного исполнителя.

А то, что Вы написали (уж извините) - это какая-то мозговзрывающая эзотерика (которую ещё нужно было постараться придумать!), напрочь оторванная от реальности.
1
212 / 210 / 137
Регистрация: 21.12.2015
Сообщений: 545
02.11.2016, 20:10 12
Native16, правильно, но очень много всего лишнего

Добавлено через 1 минуту

Не по теме:

и ещё, без обид, но ты очень странно выражаешь свои мысли

1
0 / 0 / 1
Регистрация: 30.07.2016
Сообщений: 122
02.11.2016, 20:16  [ТС] 13
TuM0xA, ну, мне главное научиться Спасибо всем!
bax_tang, то, что вы меня не поняли - это нормально. У меня свой путь, который имеет начало и изучение синтаксиса сейчас это следующий шаг. Я ни в коем случае не спорю о строении ЯП и самого компьютера, так как ничего о нём не знаю, но я не буду отказываться от его изучения. И вообще я не понял Вашего не понимания. Чего конкретно Вы не поняли? Насколько понял я, то Вы тыкаете меня носом в незнание структуры языка программирования, но я и не спорю. Я постараюсь научиться и улучшить своё понимание программирования! И вам всем того же желаю!
0
.NET senior
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
02.11.2016, 20:21 14
Резюмируя вышесказанное:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// длина нового массива - пусть будет 300 (а может быть и не 300, а может 500, 1024, whatever you want)
int length = 300;
 
double[] values = new double[length]; // создали новый экземпляр массива типа double длиной length
 
// в цикле заполняем массив, с первого и до последнего элемента
for (int index = 0; index < values.Length; ++index)
{
   values[index] = Math.Sin(Math.PI * Math.E * Math.Sqrt(index));
}
 
// аналогично - выводим сформированный массив на экран (в консоль)
for (int index = 0; index < values.Length; ++index)
{
   Console.WriteLine("values [{0}] = {1}", index, values[index]);
}
1
0 / 0 / 1
Регистрация: 30.07.2016
Сообщений: 122
02.11.2016, 20:23  [ТС] 15
bax_tang, ну, я это в первом своём посте и спрашивал
0
.NET senior
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
02.11.2016, 20:26 16
Native16, просто, на мой взгляд, без понимания синтаксиса языка (читай - правил выражения своих мыслей на нём) достаточно сложно адекватно выражать на нём свои мысли. Такая вот тавтология.
1
02.11.2016, 20:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2016, 20:26
Помогаю со студенческими работами здесь

Заполнение массива данных циклом с интревалом (15 минут)
День добрый , требуется заполнить массив цифрами в формате времени от 00:00 до 23:45 с...

Заполнение вектора с циклом
Здравствуйте, я использую аналог вектора из c++, он и его метод добавления элемента в вектор...

Заполнение ячеек в Excel циклом for
Ячейки в Excel данным способом почему-то не заполняются. Почему? Как это исправить? Sub t() Dim...

Заполнение нескольких списков циклом
Доброго времени суток. Имеется например 3 списка, а если их больше? Так вот ручками прописывать ...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru