Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
1

Как отобрать числа из массива оканчивающиеся на 5?

18.06.2014, 09:39. Показов 6609. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я вот такой код абстрактно себе представляю. Идея, то ясна, стратегия понятна, а вот тактика хромает. Скажите, что нужно переделать?

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
/*----Делаю рандомный массив array из 20 элементов-----*/
            int[] array = new int[20];            
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = rand.Next(100);                
            }
 
            /*-----Делаю второй массив arr5 из 20 элементов-----*/
            int[] arr5 = new int[20];
 
            /*-----Присваиваю переменной elemArr значение елементов массива array----*/
            int elemArr = array[20]; //Здесь хочу сказать, я отлично понимаю, что нельзя переменной присвоить все значения массива. Но мне все-то и не нужны.
 
            /*-----Теперь проверяю остаток от деления на 10----*/
            for (int i = 0; i < array.Length; i++)
            {
                int ostat = elemArr % 10; //Придаю переменной ostat остаток от деления на 10 числа, которое должно содержаться, по идее, в elemArr.
                if (ostat == 5) //Если остаток эквивалентен 5, то
                {
                    arr5[20] = elemArr; //Записываем в массив arr5 то значение, которое дает остаток 5.
                }
                else break;
            }
            Console.WriteLine(arr5); //Вывожу содержимое массива со всеми числами оканчивающимися на 5.
Результатом становится конечно необработанное исключение.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2014, 09:39
Ответы с готовыми решениями:

Сформировать два массива в первый перепишите числа оканчивающиеся на 5 , во второй числа оканчивающиеся на 2
Что не так? Дан массив из 20 целых положительных и отрицательных чисел в диапазоне от....

Двумерный массив. Отобрать в нем числа < 25 и найти их среднее, отобрать числа > 75 и вычислить их дисперсию
В массиве A(m,n) найти максимум и минимум и получить массив D(m,n), в котором максимумы и минимумы...

Как отобрать строки массива по условию в другой массив?
Доброго времени суток уважаемые знатоки VBA! :), Хочу получить уникальный элемент &quot;дело&quot; в...

Как отобрать ключи массива, которые больше определенного значения?
Есть массив, типа задача получить массив со списком авторов, которые опубликовали &gt;=7 статей,...

15
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
18.06.2014, 09:41 2
C#
1
2
3
4
5
     int[] a = new int[] { 335, 1344, 154, 4, 14, 1444};
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] % 10 == 5) Console.WriteLine(a[i]);
            }
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
18.06.2014, 09:57 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication27
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] a = new int[] { 335, 1344, 154, 4, 14, 1444 };
            var result = from n in a where n % 5 == 0 select n;
            foreach (var i in result)
                Console.WriteLine(i);
            Console.ReadLine();
        }
    }
}
2
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
18.06.2014, 10:04 4
напрягает меня в линке эта штука from n in a когда переводить начинаешь на русский, по логике должно быть from a in n
0
49 / 31 / 2
Регистрация: 14.02.2013
Сообщений: 677
18.06.2014, 10:45  [ТС] 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Console.WriteLine("\nНайдем все числа оканчивающиеся на 5");
int[] array5;                                       //Создаю новый массив
for (int i = 0; i < array.Length; i++)
{
if (array[i] % 10 == 5) Console.WriteLine(array[i]);
array5 = array;                               //А здесь я попытался передать новому массиву 
//значения предыдущего массива после записи в него чисел, оканчивающихся на 5.
}
 
Console.WriteLine("\nТеперь перемножим все эти числа");
int h = 0;
foreach (int x in array5)                 //А тут выясняется, что значения от старого массива 
//в новый не передались.
{
if (x != 0)
{                    
int z = x;
h *= z;
Console.WriteLine("Massive.Multiple{0}", x);
}
}
Мне казалось, что если объявить переменную за пределами метода, а затем внутри метода присвоить ей значения, то они останутся в этой переменной и после закрытия метода. Но новый массив оказывается пустым.
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
18.06.2014, 10:52 6
SrgKord, тебе написали

C#
1
2
int[] a = new int[] { 335, 1344, 154, 4, 14, 1444 };
var result = (from n in a where n % 5 == 0 select n).ToArray();
result - Это массив чисел который содержит все числа у которых на конце 5, выбранные из массива a


Так писать нельзя
Цитата Сообщение от SrgKord Посмотреть сообщение
array5 = array;
C#
1
array5[10]= array[5]; // присваиваем   5  элемент  массива array   10 элементу array5[10]
0
korvin_
18.06.2014, 11:10
  #7

Не по теме:

Цитата Сообщение от EVG-1980 Посмотреть сообщение
напрягает меня в линке эта штука from n in a когда переводить начинаешь на русский, по логике должно быть from a in n
Нет, должно быть for n in a ...

0
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
18.06.2014, 11:58 8
n % 5 == 0 && n % 10 != 0
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
18.06.2014, 12:28 9
Цитата Сообщение от IGPIGP Посмотреть сообщение
&& n % 10 != 0
смысл?

C#
1
2
3
key % 10 == 5 
int[] a = new int[] { 335, 10, 100, 0, 14, 1444 };
result =335
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
18.06.2014, 12:29 10
insite2012, что ж тебе все не надоест LINQ использовть в задачах первокурсников Тем более вместо кошерного MethodChain использовать ужасный sql-like.
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
18.06.2014, 13:08 11
Psilon, то что они не знают (или им не разрешено использовать) LINQ это не мои проблемы.
Решаю так как считаю оптимальным.
Ну а по запросам (а не методам) - так могу и так и эдак, просто так прикольнее.
0
16 / 16 / 4
Регистрация: 17.10.2012
Сообщений: 73
18.06.2014, 13:17 12
insite2012, и все же не %5,а %10==5, в первом случае он за верный результат посчитает десятку например
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
18.06.2014, 13:18 13
sithy, это пусть ТС допиливает. Направление ему дано.
0
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
18.06.2014, 13:58 14
А вот я нуб не знаю что за зверь MethodChain где можно почитать ?
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
18.06.2014, 14:12 15
Цитата Сообщение от EVG-1980 Посмотреть сообщение
не знаю что за зверь MethodChain
Это fluent syntax, когда вместо "from bla in blabla select blablabla" пишут "blabla.Select(blablabla)"
2
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
18.06.2014, 16:05 16
Цитата Сообщение от EVG-1980 Посмотреть сообщение
смысл?
В начальной редакции все нули в конце пропускает.
0
18.06.2014, 16:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2014, 16:05
Помогаю со студенческими работами здесь

Напечатать в одну строку все числа от 1 до 200, пропуская числа, оканчивающиеся нулём
37. Напечатать в одну строку все числа от 1 до 200, пропуская числа, оканчивающиеся нулём.

Напечатать в одну строку все числа от 1 до 200, пропуская числа, оканчивающиеся нулём
Напечатать в одну строку все числа от 1 до 200, пропуская числа, оканчивающиеся нулём.

Числа, оканчивающиеся на 5.
Задача состоит в следующем: Составить программу вывода на монитор всех чисел от 1 до N,...

Вывести все числа оканчивающиеся на 4
Нужно из массива, состоящего из 1000 чисел, составленные рандомом (a:=random(30001)), вывести все...


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

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