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

Массив: Узнать числа под индексами 15, 47, 99.

12.07.2016, 07:26. Показов 1161. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Я ученик Узнав о принципе массива я сам себе придумал задачу.

Есть массив размерностью от 0 до 99. Заполняем его случайными числами от 1 до 100.
Задача 1: Узнать числа под индексами 15, 47, 99.
Задача 2: Узнать, есть ли числа 3, 28, 71. Если таких чисел нет, то вывести, что нет. Если есть, то указать под какими индексами они находятся (если есть несколько одинаковых чисел).

Другая задача. Заполнять массив случайными числами от 1 до 100, и расширять размерность массива до тех пор, пока чисел 61 в массиве не будет 10 штук.

Добавлено через 25 минут
Мне надо заполнить массив переменными а1...а10. Затем надо перемешать все эти переменные между индексами, так как в начале они идут по порядку начиная с самого меньшего. Как это сделать? Например, индекс 0 = а3, 1 = а5, 2 = а1 и так далее.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2016, 07:26
Ответы с готовыми решениями:

Массив содержащий 10 случайных чисел выводится на экран все числа с четными индексами и отдельно с нечетными индексами.
массив содержащимся 10 случайных чисел выводится на экран все числа с четными индексами и отдельно...

Задан массив А(9).найти произведение чисел с четными индексами и сумму с нечетными индексами.
Задан массив А(9).найти произведение чисел с четными индексами и сумму с нечетными индексами.

Функция, которая вводит в массив числа, сначала с чётными, а потом с нечётными индексами
Нужно написать функцию , котороя вводила сначала в масив числа, сначала с чётнимы, а потом не...

Массив. Разделить на два: массив элементов с четными и массив с нечетными индексами
VII.Одномерные массивы 50. Задан массив с количеством элементов N. Сформировать два массива: в...

14
44 / 44 / 16
Регистрация: 02.06.2016
Сообщений: 95
12.07.2016, 09:00 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
            int count = 100;
 
            Random rnd = new Random();
            int rndmin = 1;
            int rndmax = 100;
 
            int num1 = 3;
            int num2 = 28;
            int num3 = 71;            
            
            int[] array1 = new int[count];
 
            for(int i = 0; i < count; i++)
            {
                array1[i] = rnd.Next(rndmin, rndmax);
            }
 
            for (int i = 0; i < count; i++)
            {
                Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array1[i]);
            }
 
            Console.WriteLine();
 
            bool num1check = false;
            bool num2check = false;
            bool num3check = false;
 
            for (int i = 0; i < count; i++)
            {
                if (array1[i] == num1)
                {
                    Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array1[i]);
                    num1check = true;
                }                
 
                if (array1[i] == num2)
                {
                    Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array1[i]);
                    num2check = true;
                }
                
 
                if (array1[i] == num3)
                {
                    Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array1[i]);
                    num3check = true;
                }
            }
 
            if(num1check == false)
                Console.WriteLine("Нет значения - {0}", num1);
 
            if(num2check == false)
                Console.WriteLine("Нет значения - {0}", num2);
 
            if(num3check == false)
                Console.WriteLine("Нет значения - {0}", num3);
 
 
            List<int> numbers = new List<int>();
            int checkNum = 0;
            do
            {
                int item = rnd.Next(rndmin, rndmax);
                numbers.Add(item);
                if (item == 61)
                    checkNum++;
            } while (checkNum == 3);
 
            Console.WriteLine();
            Console.WriteLine("Значений 61 в массиве "numbers" - {0}", numbers.Count());
 
            Console.WriteLine();
 
            int a1 = 1;
            int a2 = 2;
            int a3 = 3;
            int a4 = 4;
            int a5 = 5;
            int a6 = 6;
            int a7 = 7;
            int a8 = 8;
            int a9 = 9;
            int a10 = 10;
 
            //int[] arr = new int[10];
                       
 
            int[] array =  { a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 };
            
 
            // Перемешивание
            var rand = new Random();
            for (int i = array.Length - 1; i >= 0; i--)
            {
                int j = rand.Next(i);
                var temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
 
            // Вывод перемешанного массива в консоль
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array[i]);
            }
 
            Console.Read();
Добавлено через 8 минут
Там ошибка в цикле while, вот правильный вариант:


C#
1
2
3
4
5
6
7
8
            while (checkNum != 3)
            {
                int item = rnd.Next(rndmin, rndmax);
                numbers.Add(item);
 
                if (item == 61)
                    checkNum++;
            }
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
12.07.2016, 09:07  [ТС] 3
Есть некий метод генерации случайных чисел. Задача: Сгенерировать 10 случайных чисел от 1 до 10.

Генерируем этим методом случайное число. Присваиваем это число числу 1. И так выполняем это действие до конца, то есть до числа 10. Пример, 1 = 10392, 2 = 254, 3 = 85192, 4 = 621, 5 = 1235, 6 = 932154, 7 = 61, 8 = 923, 9 = 5824, 10 = 69683. Сортируем случайные числа, которые присваивали по возрастанию. Отсортированные числа перемешают числа от 1 до 10 между собой. Записываем новый порядок в новый массив. Из этого массива берём первый индекс, в котором будет первое случайное число. И так до последнего индекса. Получили 10 случайных чисел от 1 до 10.

Я всё правильно написал? Как это осуществить, если использовать стандартный метод случайных чисел Random?

Добавлено через 1 минуту
Cuguyc, спасибо добрый лорд

Добавлено через 4 минуты
Я думаю, что для генерации нового случайного числа, надо делать подобную генерацию-присваивание каждый раз, после создания нового случайного числа этим методом. А то получилось, что числа от 1 до 10 создались один раз всего. А случайные числа могут и повторяться в индексах.
0
44 / 44 / 16
Регистрация: 02.06.2016
Сообщений: 95
12.07.2016, 09:08 4
Ещё правка цикла while:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
List<int> numbers = new List<int>();
            int checkNum = 0;
 
            List<int> indArr = new List<int>();
            int index = 0;
            while(checkNum != 3)
            {
                index++;
                
                int item = rnd.Next(rndmin, rndmax);
                numbers.Add(item);
 
                if (item == 61)
                {
                    checkNum++;
                    indArr.Add(index);
                }
            } 
            
            Console.WriteLine();
            Console.WriteLine("Значений в массиве "numbers" - {0}, Значения 61 в строках: {1}, {2}, {3}", numbers.Count(), indArr[0], indArr[1], indArr[2]);
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
12.07.2016, 09:12  [ТС] 5
Cuguyc, Тогда уж заново полный правильный код выкладывай, чтобы по кускам не собирать
0
44 / 44 / 16
Регистрация: 02.06.2016
Сообщений: 95
12.07.2016, 09:18 6
Лучший ответ Сообщение было отмечено Espiond82 как решение

Решение

Espiond82, Как-то много всего =)

Если кратко написать, то задача состоит в том, что: Заполнить массив случайными числами и отсортировать в порядке возрастания? Или нет, я запутался =)

Добавлено через 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
114
int count = 100;
 
            Random rnd = new Random();
            int rndmin = 1;
            int rndmax = 100;
 
            int num1 = 3;
            int num2 = 28;
            int num3 = 71;            
            
            int[] array1 = new int[count];
 
            for(int i = 0; i < count; i++)
            {
                array1[i] = rnd.Next(rndmin, rndmax);
            }
 
            for (int i = 0; i < count; i++)
            {
                Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array1[i]);
            }
 
            Console.WriteLine();
 
            bool num1check = false;
            bool num2check = false;
            bool num3check = false;
 
            for (int i = 0; i < count; i++)
            {
                if (array1[i] == num1)
                {
                    Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array1[i]);
                    num1check = true;
                }                
 
                if (array1[i] == num2)
                {
                    Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array1[i]);
                    num2check = true;
                }
                
 
                if (array1[i] == num3)
                {
                    Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array1[i]);
                    num3check = true;
                }
            }
 
            if(num1check == false)
                Console.WriteLine("Нет значения - {0}", num1);
 
            if(num2check == false)
                Console.WriteLine("Нет значения - {0}", num2);
 
            if(num3check == false)
                Console.WriteLine("Нет значения - {0}", num3);
 
 
            List<int> numbers = new List<int>();
            int checkNum = 0;
 
            List<int> indArr = new List<int>();
            int index = 0;
            while(checkNum != 3)
            {
                index++;
                
                int item = rnd.Next(rndmin, rndmax);
                numbers.Add(item);
 
                if (item == 61)
                {
                    checkNum++;
                    indArr.Add(index);
                }
            } 
            
            Console.WriteLine();
            Console.WriteLine("Значений в массиве "numbers" - {0}, Значения 61 в строках: {1}, {2}, {3}", numbers.Count(), indArr[0], indArr[1], indArr[2]);
 
            Console.WriteLine();
 
            int a1 = 1;
            int a2 = 2;
            int a3 = 3;
            int a4 = 4;
            int a5 = 5;
            int a6 = 6;
            int a7 = 7;
            int a8 = 8;
            int a9 = 9;
            int a10 = 10;
 
            int[] array =  { a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 };            
 
            // Перемешивание
            var rand = new Random();
            for (int i = array.Length - 1; i >= 0; i--)
            {
                int j = rand.Next(i);
                var temp = array[i];
                array[i] = array[j];
                array[j] = temp;
            }
 
            // Вывод перемешанного массива в консоль
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("Индекс - {0}\t Значение - {1}", i, array[i]);
            }
 
            Console.Read();
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
12.07.2016, 09:22  [ТС] 7
Cuguyc, этот метод напоминает создание случайных чисел с помощью случайных чисел. В общем условная задача в том, чтобы заполнить массив размерностью 10 случайными числами в объёме от 1 до 10. У меня есть некий метод создания случайных чисел, но я попросил использовать стандартный метод Random для этого. Который генерирует случайные числа от 1 до 999999. Теперь для создания случайного числа от 1 до 10, мы берём массив чисел от 1 до 10, и к каждому числу присваиваем случайное число, которое сгенерировали Random'ом. Сортируем сгенерированные числа по возрастанию и тем самым перемешиваем нужные числа от 1 до 10. Но теперь, как я понял, не обязательно брать все эти 10 чисел. Просто нужно взять самое маленькое из них и оно будет первым случайным числом в рамках от 1 до 10, которые мы искали. И таким методом заполняем оставшиеся числа.
0
44 / 44 / 16
Регистрация: 02.06.2016
Сообщений: 95
12.07.2016, 09:34 8
Вроде того, я сделал так:

Кликните здесь для просмотра всего текста
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
            Console.WriteLine();
            Random MyRnd = new Random();
            int []MyArray = new int [10];
            int[] MyArray2 = new int[10];
 
            for(int i = 0; i < 10; i++)
            {
                int j = MyRnd.Next();
                MyArray[i] = j;
                MyArray2[i] = j;
            }
 
 
            for (int i = 0; i < MyArray2.Length; i++)
            {
                for (int j = 0; j < MyArray2.Length - 1; j++)
                {
                    if (MyArray2[j] > MyArray2[j + 1])
                    {
                        int z = MyArray2[j];
                        MyArray2[j] = MyArray2[j + 1];
                        MyArray2[j + 1] = z;
                    }
                }
            }
 
            for (int i = 0; i < 10; i++ )
            {
                Console.WriteLine("Индекс: {0} Число первого массива: {1}, Число второго массива: {2}", i, MyArray[i], MyArray2[i]);
            }
            Console.WriteLine();
 
            Console.Read();
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
12.07.2016, 09:41  [ТС] 9
Cuguyc, спасибо, но либо ты не понял мою задачу, либо я не понял твой код
Вкратце ещё раз повторю. Генерируем случайные число от 1 до 1000000. Полученное число записываем к числу 1. Проделываем тоже самое с остальными числами до 10. Выбираем наименьшее из сгенерированных чисел и записываем это число, как случайное от 1 до 10, которое нам было нужно. И так делаем столько раз, сколько нужно, то есть ещё 10 раз. Получим десять чисел сгерерированных в объёме от 1 до 10.
0
44 / 44 / 16
Регистрация: 02.06.2016
Сообщений: 95
12.07.2016, 09:48 10
Ааааа, понял))) ща сделаю)
Это ты сам задачи придумываешь или откуда берешь? )

По сути это же просто, ты попробовал сделать сам?
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
12.07.2016, 10:07  [ТС] 11
Cuguyc, сам Я всего пятый день знаком с программированием. И глядя на тебя и на других, кто пишет такие коды, складывается впечатление, что вы не люди! Как такое вообще возможно не только написать, но и знать всю логику? Это же не просто знания языка, это же и логическое мышление. У меня вот такого нет. Я думаю, что и не появится, даже когда я и синтаксис языка выучу. Просто поразительное мышление.

Добавлено через 16 минут
Я даже это не могу сделать, чего уж там
C#
1
2
3
4
            Console.Write("Введите число: ");
            int a = Console.ReadLine();
 
            Console.ReadKey();
0
44 / 44 / 16
Регистрация: 02.06.2016
Сообщений: 95
12.07.2016, 10:10 12
Я тоже так в своё время думал =)

Мой тебе совет - больше практики, пиши сам код, если что-то не получается, пиши на форум, сейчас ты даёшь задачку, я решаю) а лучше для понимания будет хоть какой-то код написать и спросить, что делать дальше =) Так будет хотя бы понятно, что ты хочешь сам разобраться, а не что бы за тебя решили задачки препода =)

ВОт теперь вроде то, что надо)
Кликните здесь для просмотра всего текста
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
Console.WriteLine();
            Random MyRnd = new Random();
            int[] MyArray2 = new int[10];
 
            for (int j = 0; j < 10; j++)
            {
                int[] MyArray = new int[10];
 
 
                for (int i = 0; i < 10; i++)
                {
                    int intRand = MyRnd.Next(1, 999999);
                    MyArray[i] = intRand; //заполняем массив данными
                }
 
                int minValue = MyArray.Min(x => x);// берем минимальный элемент массива
 
                MyArray2[j] = minValue; // и так 10 раз =)
 
            }
 
 
            //Это цикл сортировки, для красоты сделал =) 
            for (int i = 0; i < MyArray2.Length; i++)
            {
                for (int j = 0; j < MyArray2.Length - 1; j++)
                {
                    if (MyArray2[j] > MyArray2[j + 1])
                    {
                        int z = MyArray2[j];
                        MyArray2[j] = MyArray2[j + 1];
                        MyArray2[j + 1] = z;
                    }
                }
            }
 
            for (int i = 0; i < 10; i++ )
            {
                Console.WriteLine("Индекс: {0} Число массива: {1}", i, MyArray2[i]);//Выводим на экран
            }
            Console.WriteLine();
 
            Console.Read();


И не стесняйся гуглить, мне было лень писать самому, поэтому половина кода я скопипастил из нэта =) главное понимать, что копипастить и как это работает =)
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
12.07.2016, 10:13  [ТС] 13
в С++ проще.
C++
1
2
cout << "Enter number: ";
cin >> a;
Добавлено через 1 минуту
Cuguyc, спасибо ещё раз. Но я уже говорил, что я ученик, но я нигде не учусь. Программирование у меня на самообучении идёт Задачи я все, которые тут, придумал сам.
0
44 / 44 / 16
Регистрация: 02.06.2016
Сообщений: 95
12.07.2016, 10:23 14
Да, одна фигня на самом деле, в шарпах даже интуитивно понятнее, Консоль.Написать, Консоль.Считать

Добавлено через 9 минут
Если есть вопросу по коду, спрашивай. Главное не загубить интерес на консольных приложениях. Я в своих прогах юзаю в основном динамические массивы, стандартные даже подзабываю порой) из циклов я в основном юзаю foreach =) Ну и LINQ, лямда выражения )удобно, практично =)
1
1 / 1 / 0
Регистрация: 08.07.2016
Сообщений: 40
12.07.2016, 10:31  [ТС] 15
Cuguyc, да есть один вопросик я тебе его в личку отправил.
0
12.07.2016, 10:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2016, 10:31
Помогаю со студенческими работами здесь

Сформировать массивы А и В. В массив А поместить элементы с четными индексами, в массив В с нечетными
2. Задан массив Д(5х5). Сформировать массивы А и В. В массив А поместить элементы с четными...

Массив: На главной диагонали числа от N до 1, под главной - нули, а над главной - числа в порядке возрастания...
На главной диагонали расположены числа от N до 1, под главной диагональю нули, а над главной...

Определить, под какими индексами в заданной строке находятся пробелы
Здравствуйте,есть такой вопрос,вот есть строка (string) нужно определить под какими индексами в ней...

Если массив квадратный, то умножить числа под побочной диагонали
Ввести с клавиатуры массив. Если массив квадратный то умножить числа под побочной диагонали. Иначе...


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

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