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

Вычислить произведение элементов массива с четными номерами

07.03.2013, 12:12. Показов 2652. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В одномерном массиве, состоящем из n целочисленных элементов,
1. вычислить произведение элементов массива в четными номерами.
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
using System;
 
namespace Study5
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            int n = rnd.Next(6, 10);
            int[] mas = new int[n];
 
            Random elem = new Random();
            Console.WriteLine("Исходный массив");
            for (int i = 0; i < mas.Length; ++i)
            {
                mas[i] = elem.Next(-20, 20);
                Console.Write(mas[i] + " ");
            }
            Console.WriteLine();
 
            int product = 1;
            for (int i = 0; i < mas.Length; ++i)
            {
                if ((i%2) != 1)
                {
                    product *= mas[i];
                }
            }
 
            Console.WriteLine("Произведение элементов массива с четными номерами product = " + product);
 
            
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2013, 12:12
Ответы с готовыми решениями:

Вычислить произведение элементов массива с четными номерами
в одномерном массиве из целочисленных элементов вычислить: 1) произведение элементов массива с...

Вычислить произведение элементов массива с четными номерами
Здравствуйте, уважаемые! Имеется задача: В одномерном массиве, состоящем из n целочисленных...

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

Найти произведение элементов массива с четными номерами, сумму элементов и преобразовать массив
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) произведение элементов массива...

6
78 / 78 / 15
Регистрация: 27.01.2013
Сообщений: 323
07.03.2013, 14:02 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Если по заданию не запрещено пользоваться готовыми средствами библиотеки тогда Array.Sort<T> иначе своя сортировка:

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
using System;
using System.Linq;
 
namespace Study5
{
public class Program
{
    //Меньше 0 Значение параметра x меньше значения параметра y.
    //0 Значение параметра x равно значению параметра y.
    //Больше 0 Значение x больше значения y.
    private static int MyIntComparison(int x, int y)
    {
        if (x >= 0 && y < 0) return -1;
        else if (x < 0 && y >= 0) return 1;
        return 0;
    }
 
    //любая своя сортировка
    //или самая примитивная  
    private static void Sort(ref int[] mas, Comparison<int> Comp)
    {
        int swap;
        for(int i=0;i<mas.Length-2;i++)
            for(int j=0;j<mas.Length-1-i;j++)
                if (Comp(mas[j],mas[j+1])>0)
                {
                    swap = mas[j+1];
                    mas[j + 1] = mas[j];
                    mas[j] = swap;
                }
    }
    
    public static void Main()
    {
       
        Random rnd = new Random();
        int n = rnd.Next(6, 10);
        int[] mas = new int[n];
 
        Random elem = new Random();
        Console.WriteLine("Исходный массив");
        for (int i = 0; i < mas.Length; ++i)
        {
            mas[i] = elem.Next(-20, 20);
            Console.Write(mas[i] + " ");
        }
        Console.WriteLine();
        Console.WriteLine();
        Array.Sort(mas, MyIntComparison);
        //Sort(ref mas, MyIntComparison);//своя сортировка
 
        for (int i = 0; i < mas.Length; ++i) 
            Console.Write(mas[i] + " ");
        Console.WriteLine();
    }
}
}
Про Comparison<T>
Про Array.Sort<T>
0
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 565
07.03.2013, 14:54 3
Можно "тупо в лоб".
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static int[] MyChangeArr(int[] a)
        {
            int i;
            int indx = 0;
            int[] res = new int[a.Length];
 
 
            for (i = 0; i < a.Length; i++)
                if (a[i] >= 0) res[indx++] = a[i];
 
            for (i = 0; i < a.Length; i++)
                if (a[i] < 0) res[indx++] = a[i];
 
 
            return res;
        }
0
Заблокирован
07.03.2013, 14:54 4
да плохое это решение. ищи я уже решал за один проход. adm_loro.
0
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 565
07.03.2013, 19:11 5
Цитата Сообщение от loro Посмотреть сообщение
да плохое это решение. ищи я уже решал за один проход. adm_loro.
Искал (честно!), не нашёл. Может вы найдёте? Вам ведь легче среди себя найти. Или, может, тему подскажете (если помните)?
0
Заблокирован
07.03.2013, 23:19 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

ок найду. adm_loro зибанили, теперь я за него

Добавлено через 18 минут
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
   private static void wtf(int[] arr)
        {
            int cnt = 0;
            int pIdx = -1;
            for (int i = 0; i < arr.Length; ++i)
            {
                if (arr[i] >= 0)
                {
                    if (cnt > 0)
                    {
                        Swap(ref arr[pIdx++], ref arr[i]);
                    }
                }
                else
                {
                    ++cnt;
                    if (pIdx == -1)
                        pIdx = i;
                }
            }
        }
 
 
        private static void Swap(ref int a, ref int b)
        {
            int t = a;
            a = b;
            b = t;
        }
1
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 565
09.03.2013, 15:05 7
loro, понравилось. Честно говоря, пока размышлял над заданием, был такой вариант (пока не в коде). Но захотелось сохранить относительный порядок и над отрицательными значениями. (Да, да, я обратил внимание, что в задании не требуется устойчивость.) Выходит ошибся в выборе. :=)
0
09.03.2013, 15:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2013, 15:05
Помогаю со студенческими работами здесь

Найти произведение элементов массива с четными номерами, элементы заменить суммой всех предыдущих
Дан вектор размерности N. 1. Найти произведение элементов с четными номерами. 2. Все элементы,...

Вычислить произведение элементов массива с четными индексами. Использовать методы класса Array
Помогите с решением задачки. В одномерном массиве, состоящем из n действительных элементов,...

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

Вычислить произведение элементов массива с четными номерами
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { int N,i=1,min,max;...


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

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