Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Suren
0 / 0 / 0
Регистрация: 05.05.2015
Сообщений: 2
1

Консольное приложение С#

24.09.2013, 21:03. Просмотров 633. Ответов 0
Метки нет (Все метки)

Доброго времени суток.
Большая просьба с написанием кода. В консоли.
Задание:
В одномерном массиве, состоящем из n целых элементов, вычислить
1. Произведение элементов массива с нечетными номерами.
2. Сумму элементов массива, расположенных между первым и последним отрицательными элементами.
Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями.

То есть, допустим есть массив -1 5 1 6 3, по модулю элементы массива не должны превышать 1 либо быть ей равны.
(<=1)
то есть элементы -1 и 1 будут обнулены и перемещены в конец массива.
Другой пример, есть массив 5 -4 -10 4 1 5 3, конечный массив должен быть 5 4 5 3 0 0 0
Не много не понятно, задание, потому что по модулю выходит в промежутке от 1 до -1
Вообщем помогите разобраться, гуру программирования
У меня уже имеется код, но он по словам преподавателя слишком грамосткий.
Код
Кликните здесь для просмотра всего текста
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
namespace Prog1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Ввод массива
            int n, i;
            double sum=0;
            Console.WriteLine("Введите количество элементов массива");
            n = Convert.ToInt32(Console.ReadLine());
            Double[] array = new double[n];
            Console.WriteLine("Введите элементы массива");
            for (i = 0; i < n; i++)
            {
                Console.WriteLine("Введите {0}-ой элемент массива",i);
                array[i] = Convert.ToInt32(Console.ReadLine());
            }
 
            // Первая часть
            // Посчитаем произведение элементов с нечетными номерами
           double production = 1;
            for (i = 1; i < n; i += 2)
                production *= array[i];
            // Выведем на экран
            Console.WriteLine("Произведение элементов с нечетными номерами {0}", production);
 
               
            // Вторая часть
            int first , last ;
            first = -1; last = -1;
            i = 0;
            //Находим индекс первого отрицательного элемента
            /*for (int i = 0; i < n && array[i] >= 0; i++)
                if (array[i] < 0) first = i;*/
           
            while (i < n && array[i] >= 0)
            { if (array[i] < 0) first = i; i++; }
 
 
 
            //Находим индекс последнего отрицательного элемента
            for (i = n - 1; i >= 0 && array[i] >= 0; i--)
                if (array[i] < 0) last = i;
            Console.WriteLine("Начало интервала "); 
            Console.WriteLine(first);
            Console.WriteLine("Конец интервала ");  
            Console.WriteLine(last);
            // Теперь просуммируем все элементы между первым и последним отрицательными
            if (first == -1 && last == -1)
                Console.WriteLine("В массиве отрицательных значений не имеется");
            else if((last - first)<=1) 
                Console.WriteLine("Интервала для поиска нет");
            else 
            for (i = first+1; i < last; i++)
                sum += array[i];
           
            // Выведем на экран
            Console.WriteLine("Сумма элементов между первым и последним отрицательными {0}", sum);
 
            // Сожмем массив
            int deleted = 0;
            int ind = 0;
            while (ind + deleted < n)
            {
                // Находим элемент непревосходящий 1 по модулю
                if (System.Math.Abs(array[ind]) <= 1)
                {
                    // Сдвигаем остальные элементы, которые ещё не были обнулены
                    for (int j = ind; j < n - deleted - 1; j++)
                    {
                        array[j] = array[j + 1];
                    }
                    // Обнуляем один элемент
                    array[n - deleted - 1] = 0;
                    // Увеличиваем счетчик обнуленных элементов
                    deleted++;
                }
                else
                    // Переходим к следующему элементу массива
                    ind++;
            }
            // Теперь выведем получившийся массив на печать
            Console.WriteLine("В результате получился массив:");
            for (i = 0; i < n; i++)
                Console.Write("{0} ",array[i]);
            Console.WriteLine("");
            Console.ReadLine();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2013, 21:03
Ответы с готовыми решениями:

Консольное приложение
Здравствуйте. Подскажите Пожалуйта как можно сделать повтор приложения к...

Консольное приложение
Задача: составить программу вычисления функции.Вывести результат вычисления и...

консольное приложение
Помогите реализовать задачу Написать на С# код консольного приложения,...

Консольное приложение в C#.NET
Нужно написать программу вычисления длины ломанной линии стстоящей из трех...

Многопоточное консольное приложение C#
Здравствуйте,подскажите пожалуйста как сделать это задание? Потоки знаю,сделать...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2013, 21:03

Консольное приложение с аргументами
Не получается сделать приложение калькулятор с передачей параметров из консоли....

консольное многопоточное приложение на си#
Привет! Помогите пожалуйста, не могу разобраться с задачей( задача следующая:...

Запароленное консольное приложение
Создайте в VisuaI Studio прототип консольного приложения C#, защищенного...


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

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

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