Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2015, 13:17   #1
(Alexey)
Новичок
Джуниор
 
Регистрация: 27.12.2015
Сообщений: 1
По умолчанию Сортировка массива по чётным элементам

В одномерном массиве, состоящем из n целочисленных элементов, вычислить:
- минимальный по модулю элемент массива;
- сумму модулей элементов массива, расположенных после первого элемента, равного нулю.
Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине – элементы, стоявшие в нечетных позициях.

проблема с преобразованием массива... что не так? подскажите, пожалуйста...

Пишу в windows forms.
_____________________________

Код:
using System;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            textBox3.Text = "";
            textBox7.Text = "";
 
            int n = Convert.ToInt32(textBox1.Text);
            int[] mas = new int[n + 1];
            int i, fi=0;
            bool ffe = false;
            int min = 0;
            int sum = 0;
            int tmp;
            for (i = 1; i <= n; i++)
            {
                Form2 Form2 = new Form2();
                Form2.ShowDialog();
                mas[i] = Convert.ToInt32(Form2.textBox1.Text);
                textBox3.Text += "X[" + Convert.ToString(i) + "]=  " + Convert.ToString(mas[i]) + "\r\n"; // выводим массив
 
                if ((min == 0) && (i == 1)) min = mas[1];
                if (Math.Abs(min) >= Math.Abs(mas[i]))
                    min = Math.Abs(mas[i]);
                textBox2.Text = Convert.ToString(min) + "\r\n"; //выводим минимальный элемент массива
 
 
                if (mas[i] == 0)
                {
                    if (!ffe)
                    {
                        fi = i + 1;
                        ffe = true;
                    }
                }
            }
 
            for (i = fi; i <= n; i++)
            {
                sum += Math.Abs(mas[i]);
            }
 
            for ( i = 1; i < mas.Length / 2; i++)
            {
                if (i % 2 != 0)
                {
                    tmp = mas[i + mas.Length / 2];
                    mas[i + mas.Length / 2] = mas[i];
                    mas[i] = tmp;
                }
            }
 
            
            {
                
                for (i = 1; i <= n; i++)
                {
                    textBox7.Text += "X[" + Convert.ToString(i) + "]=  " + Convert.ToString(mas[i]) + "\r\n";
                }
                textBox4.Text = Convert.ToString(sum) + "\r\n"; // Сумма элементов, после нуля
 
            }
        }
    }
}работает.png
не работает.png

Последний раз редактировалось (Alexey); 27.12.2015 в 13:44.
(Alexey) вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива по нечетным элементам Dimon82Al Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.03.2013 19:13
Разбивка массива по элементам! Corvette Общие вопросы C/C++ 12 15.10.2011 23:18
к элементам первой половины массива добавить минимум, а к элементам второй - добавить максимум specialist Паскаль, Turbo Pascal, PascalABC.NET 3 08.05.2011 01:46
обращение к элементам двумерного массива на С++ серг Помощь студентам 16 05.12.2009 21:01
Обращение к элементам массива через указатель в С++ серг Помощь студентам 1 24.11.2009 01:30