Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 28
1

Массив и выборка чисел.

03.05.2010, 11:14. Показов 3856. Ответов 13
Метки нет (Все метки)

Нужно задать одномерный массив размеромностью [100] функцией random , и сделать так что бы программа вывела на экран все числа двузначные которые начинаются с одинаковой цифры и которые заканчиваются на тоже на одинковые. (Например все двузначные числа начинающиеся на 7 и заканчивающиеся 5(т.е это будут все числа с 70 по 79 и + 15,25,35,45....95))
Как реализовать можно?
C#
1
2
3
4
5
6
{
            
            int[] mas = new int[100];
            Random mas = new Random();
            for (int i = 0; i < 100; i++)
 }
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2010, 11:14
Ответы с готовыми решениями:

Дан массив А[М] — массив чисел. Получить массив С, элементами которого будут модули сумм рядом стоящих чисел
Реализовать в виде модуля набор подпрограмм для выполне¬ния сле-дующих операций над целыми числами:...

Генерирование случайных чисел и выборка значения из этих чисел
Здравствуйте, помогите решить задачку. Нужно случайным образом сгенерировать числа от 0..9, 100...

Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
помогите!!!((( дан массив целых чисел,произвести для него следующие операции: для каждого из чисел...

Создать массив трехзначных чисел, сумма цифр которых меньше 8, вывести массив и найти количество этих чисел
создать массив трехзначных чисел, сумма цифр которых меньше 8, вывести массив и найти количество...

13
мну довольно <(-__-)l
214 / 203 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
03.05.2010, 12:05 2
C#
1
2
3
4
5
6
7
8
9
10
11
int[] mas = new int[100];
Random r = new Random();
for (int i = 0; i < 100; i++)
   mas[i]=r.Next(10,100);//заполнение массива двузнаяными числами
int first=7, second=5;
int[] mass=new int[100];
int count=0;
foreach(int x in mas){
   if(x%10==first || x/10==first) mass[count++]=x;//запоминаем все элементы удовлетворяющих условиям
for(int i=0;i<count;i+++)
   Console.WriteLine(mass[i]);//выводим элементы на экран
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 28
03.05.2010, 14:55  [ТС] 3
Запускается, но ничего не выводит.
0
2090 / 1254 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
03.05.2010, 17:03 4
Цитата Сообщение от NewProgrammer Посмотреть сообщение
Запускается, но ничего не выводит.
Все должно работать.
Ну как вариант - еще один вид решения.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Linq;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] mas = new int[100];
            Random r = new Random();
            for (int i = 0; i < 100; i++)
                mas[i]=r.Next(10,100);//заполнение массива двузначными числами
            int first=7, second=5;
            var mass = mas.Where((n) => n / 10 == first || n % 10 == second);
            foreach(int x in mass)
                Console.WriteLine(x);//выводим элементы на экран
            Console.ReadKey();
        }
    }
}
0
143 / 115 / 8
Регистрация: 09.03.2010
Сообщений: 150
03.05.2010, 17:44 5
Третий вариант - выводит совпадения рандомно сгенерированных двузначных чисел по первой цифре и по второй - каждый вариант по отдельности.
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
   int[] numbers = new int[10]; 
          Random random = new Random();
         
       for (int i = 0; i < numbers.Length; i++)
           {
               numbers[i] = random.Next(10,100);  // генерируем набор двузначных цифр и заполняем массив
           }
 
  var First = numbers.Select(n => n.ToString()).GroupBy(s => s[0]).Where(j => j.Count() > 1).SelectMany(e=>e);
  var Second = numbers.Select(n => n.ToString()).GroupBy(s => s[1]).Where(j => j.Count() > 1).SelectMany(e => e);
           
Console.WriteLine("Элементы с совпадением первой цифры:");
            foreach (var i in First)
            {
               Console.WriteLine(i);//выводим элементы на экран
            }
 
         Console.WriteLine("Элементы с совпадением второй цифры:");
            foreach (var i in Second)
            {
                Console.WriteLine(i);//выводим элементы на экран
            }
 
            Console.ReadKey();
0
мну довольно <(-__-)l
214 / 203 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
03.05.2010, 20:48 6
не пугай новичков=)
0
86 / 86 / 26
Регистрация: 04.01.2010
Сообщений: 270
03.05.2010, 23:20 7
жжоте
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 28
04.05.2010, 05:21  [ТС] 8
А размерность массива [100] обязательно означает что в нем расположены элементы от 0 до 99 или массиве [100] может быть просто 100 каких угодно чисел, пяти,шести,трех...значных?
0
143 / 115 / 8
Регистрация: 09.03.2010
Сообщений: 150
04.05.2010, 08:45 9
NewProgrammer,
размерность в сто означает только то, что массив рассчитан на сто элементов(индексов), значение которым будет присвоено при заполнении массива. Какое именно - зависит во первых от типа массива, во вторых от того, как и чем его заполнять. В предложенных вариантах массив заполняется рандомными двузначными цифрами в диапазоне от 10 до 99. Так как они генерируются рандомно, то разумеется числа могут повторяться. Собственно что укажешь в диапазоне метода Next() класса Random - такие числа и получишь - хоть "пяти,шести,трех...значных". Все они так же будут приняты массивом - в пределах границ его вместимости - выходить за которую нельзя. Иксепшен будет...
0
мну довольно <(-__-)l
214 / 203 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
04.05.2010, 10:37 10
у меня пара ошиьок было... правда прога и запуститься то не должна была...
а если запустилась то должна была и вывести элементы, разве что в массив ене было элементов удовлетворяющих условиям...

C#
1
2
3
4
5
6
7
8
9
10
11
int[] mas = new int[100];
Random r = new Random();
for (int i = 0; i < 100; i++)
   mas[i]=r.Next(10,100);//заполнение массива двузнаяными числами
int first=7, second=5;
int[] mass=new int[100];
int count=0;
foreach(int x in mas)
   if(x%10==second || x/10==first) mass[count++]=x;//запоминаем все элементы удовлетворяющих условиям
for(int i=0;i<count;i++)
   Console.WriteLine(mass[i]);//выводим элементы на экран

теперь все правильно доолжно быть...
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 28
04.05.2010, 11:55  [ТС] 11
Ну вот пример:
Выбираем 4-х значные числа начинающиеся с 8.
C#
1
2
3
4
5
6
7
8
9
10
11
12
static void Main(string[] args)
        {
            int[] mas = new int[10000];
            Random r = new Random();
            for (int i =1; i < 9999; i++)
                mas[i] = r.Next(1000,9999);
            int first = 8;
            var mass = mas.Where((n) => n / 1000 == first);
            foreach (int x in mass)
                Console.WriteLine(x);
            Console.ReadKey();
        }
Если же мне уменьшить размер с [10000] до [100]? то будет вылезать ошибка о том что индекс вне массива. Если же изменить 5 строчку на например
C#
1
for (int i =1; i < 99; i++)
, то собственно и программа не будет выводить нечего, т.к и неоткуда ей брать 4х значные числа как я понимаю.
0
143 / 115 / 8
Регистрация: 09.03.2010
Сообщений: 150
04.05.2010, 15:17 12
NewProgrammer,
глупости говоришь
"Если же мне уменьшить размер с [10000] до [100]? то будет вылезать ошибка о том что индекс вне массива. " Разумеется будет ошибка - это же очевидно. Массив на сто ячеек, а цикл крутится 9999 раз.


"Если же изменить 5 строчку на например то собственно и программа не будет выводить нечего, т.к и неоткуда ей брать 4х значные числа"
Однако откуда то они все таки берутся - и если подумать - то можно понять откуда.
этот код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 int[] mas = new int[100];
            Random r = new Random();
            for (int i =0; i < 100; i++)
            {
                mas[i] = r.Next(1000,9999);
            }
            int first = 8;
            var mass = mas.Where((n) => n / 1000 == first);
            foreach (int x in mass)
            {
            Console.WriteLine(x);
            }
            Console.ReadKey();
работает без проблем. Массив заполняется четырехзначными числами в кол-ве 100 штук. И затем из них благополучно выбираются все числа начинающиеся на 8.
1
мну довольно <(-__-)l
214 / 203 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
04.05.2010, 23:32 13
mas[i] = r.Next(1000,9999);
так правильнее
mas[i] = r.Next(1000,10000);
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 28
05.05.2010, 05:50  [ТС] 14
Спасибо. Пошел еще Шилдта читать
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2010, 05:50

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Одномерный массив (Ввести массив из 10 вещественных чисел.Найти сумму чисел,стоящих на чётных местах)
Ввести массив из 10 вещественных чисел.Найти сумму чисел,стоящих на чётных местах. Обьясните что...

Преобразовать одномерный массив вещественных чисел в массив целых чисел отсечением дробной части
Преобразовать одномерный массив вещественных чисел в массив целых чисел отсечением дробной части

Выборка 2 чисел из n
Надо найти количество возможных вариантов выбора числа, не знаю как правильнее объяснить, но могу...

Выборка чисел
Всем доброго дня, вопрос вот в чем. Как выбрать из столбца только числа ? Заранее спасибо.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.