Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/58: Рейтинг темы: голосов - 58, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 7
1

Удалить из массива все четные числа

05.11.2009, 16:35. Показов 10909. Ответов 16
Метки нет (Все метки)

Не получается удалить из массива четные числа. Подскажите, пожалста как это сделать на С#... Ну, пожааалуйста...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2009, 16:35
Ответы с готовыми решениями:

удалить из массива все чётные числа не попадающий в интервал от А до С
......

удалить из массива все чётные числа не попадающий в интервал от А до С
Сделайте пожалуйста через static void Main. Чтоб было нормально.

Удалить из массива целых чисел все четные числа, стоящие на нечётных местах, сдвинув оставшиеся в начало
Создайте проект, в котором в рамках класса Program опишите метод вывода и метод обработки...

C# Даны числа Удалить все четные числа!
Здравствуйте,помогите решить.Только не трудным способом,можно даже не решать а просто направить и...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
16
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
05.11.2009, 16:46 2
C#
1
2
int[] array = new int[]{1,2,3,4,5,6,7};
            array=array.Where((elem) => { return ((elem & 1) == 1); }).ToArray();
2
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 7
05.11.2009, 16:55  [ТС] 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
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
using System;
namespace ConsoleApplication
{
    class Class
    {
        static int[] Input()
        {
            Console.WriteLine("введите размерность массива");
            int n = int.Parse(Console.ReadLine());
            int[] a = new int[n];
            for (int i = 0; i < n; ++i)
            {
                Console.Write("a[{0}]= ", i);
                a[i] = int.Parse(Console.ReadLine());
             }
            return a;
        }
 
 
 
 
        static void Print(int[] a, int n)
        {
            for (int i = 0; i < n; ++i) Console.Write("{0} ", a[i]);
            Console.WriteLine();
        }
 
        static void DeleteArray(int[] a, ref int n, int m)
        {
            for (int i = m; i < n - 1; ++i)
                a[i] = a[i + 1];
            --n;
        }
 
        static void Main()
        {
            int[] myArray = Input();
            int n = myArray.Length;
            Console.WriteLine("Исходный массив:");
            Print(myArray, n);
 
            int m;
            m = 0;
int[] a = new int[n];
            for (int i = 0; i < n; ++i)
                {
                    if ((a[i] % 2 == 0)||(a[i]  == 0))
                    {
                        m = i;
                        DeleteArray(myArray, ref n, m);
                        
                    }
                }
            Console.WriteLine("Измененный массив:");
            Print(myArray, n);
            Console.ReadLine();
        }
    }
}
0
69 / 68 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
05.11.2009, 17:01 4
нет это не на паскале, это код C#, просто в 2 строки без всяких циклов, выполняется нужная тебе задача, если это универская задачка, то препод наверняка закидает вопросами)

Добавлено через 1 минуту
Цитата Сообщение от Humanitis Посмотреть сообщение
C#
1
2
int[] array = new int[]{1,2,3,4,5,6,7};
            array=array.Where((elem) => { return ((elem & 1) == 1); }).ToArray();
массив array это измененный , нужный тебе массив
0
MCSD: APP BUILDER
8790 / 1068 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
05.11.2009, 17:43 5
Malinka*,
это не паскаль, а c# 3.0 (используются анонимные лямбда-функции)
код с return там лишний, можно еще подсократить:
arr.Where(p => (p & 1) == 1).ToArray();
1
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 7
07.11.2009, 10:08  [ТС] 6
у меня не получается... С# выдаёт ошибки. Какой-то странный код...

Добавлено через 7 минут
Не могли бы вы написать код поподробнее..
0
962 / 765 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
07.11.2009, 10:08 7
Цитата Сообщение от Malinka* Посмотреть сообщение
С# выдаёт ошибки. Какой-то странный код...
А какие ошибки?
1
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 7
07.11.2009, 10:22  [ТС] 8
ну вот они:
> это он не понимает
) перед Array не признаёт
{ перед return не будет.

Добавлено через 6 минут
я тут свою програмку потыкала - теперь return не хочет..

Добавлено через 2 минуты
Цитата Сообщение от Rififi Посмотреть сообщение
Malinka*,
это не паскаль, а c# 3.0 (используются анонимные лямбда-функции)
код с return там лишний, можно еще подсократить:
arr.Where(p => (p & 1) == 1).ToArray();
не получается исправить на этот код задачу. Тут что-то не то, по-моему
0
962 / 765 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
07.11.2009, 10:22 9
Покажите ваш код, чт-то не понятно, где у вас ошибки
0
4313 / 1481 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
07.11.2009, 10:30 10
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;
using System.Linq;
class Program
{
    static void Main(string[] args)
    {
        int[] msv = new int[20];
        Random r = new Random(DateTime.Now.Millisecond);
        for (int i = 0; i < msv.Length; i++)
        {
            msv[i] = r.Next(0, 10);
        }
        Console.WriteLine("Исходный массив:");
        foreach (int i in msv)
        {
            Console.Write(i + " ");
        }
        var msv2 = msv.Where(n => n % 2 != 0);
        Console.WriteLine("\n\nПосле удаления четных:");
        foreach (int i in msv2)
        {
            Console.Write(i + " ");
        }
    }
}
2
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 7
07.11.2009, 12:12  [ТС] 11
Программа: "Я не работаю.."
0
2088 / 1252 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
07.11.2009, 12:15 12
Скопируй код программы и запости сюда. Посмотрим.
0
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 7
07.11.2009, 12:56  [ТС] 13
ошибка во 2 и 18 строчке. Не воспринимает System.Linq

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;
using System.Linq;
class Program
{
    static void Main(string[] args)
    {
        int[] msv = new int[20];
        Random r = new Random(DateTime.Now.Millisecond);
        for (int i = 0; i < msv.Length; i++)
        {
            msv[i] = r.Next(0, 10);
        }
        Console.WriteLine("Исходный массив:");
        foreach (int i in msv)
        {
            Console.Write(i + " ");
        }
        var msv2 = msv.Where(n => n % 2 != 0);
        Console.WriteLine("\n\nПосле удаления четных:");
        foreach (int i in msv2)
        {
            Console.Write(i + " ");
        }
    }
}
0
2088 / 1252 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
07.11.2009, 13:27 14
А гле пространство имен?
Вот так работает:
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
using System;
using System.Linq;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] msv = new int[20];
            Random r = new Random();
            for (int i = 0; i < msv.Length; i++)
            {
                msv[i] = r.Next(0, 10);
            }
            Console.WriteLine("Исходный массив:");
            foreach (int i in msv)
            {
                Console.Write(i + " ");
            }
            var msv2 = msv.Where(n => n % 2 != 0);
            Console.WriteLine("\n\nПосле удаления четных:");
            foreach (int i in msv2)
            {
                Console.Write(i + " ");
            }
            Console.ReadKey();
        }
 
    }
}
Добавлено через 4 минуты
Кстати, первый цикл foreach можно убрать, а вывод исходного массива организовать через цикл for:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int[] msv = new int[20];
            Random r = new Random();
            Console.WriteLine("Исходный массив:");
            for (int i = 0; i < msv.Length; i++)
            {
                msv[i] = r.Next(0, 10);
                Console.Write(msv[i] + " ");
            }
            var msv2 = msv.Where(n => n % 2 != 0);
            Console.WriteLine("\n\nПосле удаления четных:");
            foreach (int i in msv2)
            {
                Console.Write(i + " ");
            }
            Console.ReadKey();
1
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 7
07.11.2009, 15:36  [ТС] 15
Цитата Сообщение от kirill29 Посмотреть сообщение
var msv2 = msv.Where(n => n % 2 != 0);
а для чего Where? Что он дает? Выводит ошибку в программе...
0
MCSD: APP BUILDER
8790 / 1068 / 104
Регистрация: 17.06.2006
Сообщений: 12,604
07.11.2009, 15:45 16
Malinka*,
Выводит ошибку в программе...
для работы требуется компиляция под Framework 3.5
1
2088 / 1252 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
07.11.2009, 17:25 17
LINQ - интегрированный язык запросов. Позволяет работать с массивами, XML, списками и другими источниками данных.
Цитата Сообщение от Malinka* Посмотреть сообщение
а для чего Where? Что он дает?
В Where указывается условие отбора элементов из первого массива и заполнение второго массива.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2009, 17:25

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Удалить из очереди все четные числа
Сессия грядет , ребята выручайте! 1. Сформировать динамический список (очередь), считая, что длина...

Удалить из текстового файла все четные числа
Дан текстовый файл ,содержащий целые числа , записанные через пробел . Удалите из него все четные...

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

Переместить в начало массива все нечетные числа, а в конец все четные
Переместить в начало все нечетные числа, а в конец все четные.


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

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

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