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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2013, 17:14   #1
timzyed
 
Регистрация: 14.11.2013
Сообщений: 8
По умолчанию С#. Массив. обмен переменными

Здравствуйте, мучает такое задание:

"Дан массив целых чисел. Если первый элемент больше 0, то обменяйте первый элемент с последним, второй с предпоследним и т.д. Если меньше 0, то сдвиньте массив на 1 элемент: первый на место второго, а второй на место третьего,… последний на место первого. Если первый элемент равен 0, то затереть массив нулями."
timzyed вне форума Ответить с цитированием
Старый 14.11.2013, 17:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну и что же тут мучительного?
Показывай муки творчества )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2013, 17:35   #3
timzyed
 
Регистрация: 14.11.2013
Сообщений: 8
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int temp1 = 0, temp2 = 0;
            int n = Convert.ToInt32(Console.ReadLine());
            int[,] arr = new int[n, n];

            Random rnd = new Random();
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    arr[i, j] = rnd.Next(-100, 100);
                    Console.Write(arr[i, j] + " ");
                    Console.Write(" ");
                    {
                        if ((arr[0, 0]) > 0)
                            temp1 = arr[0, 0];
                            temp2 = arr[1, 1];
                            arr[1, 1] = temp1;
                            arr[0, 0] = temp2;
                        Console.Write(arr[i, j] + " ");
                    }

                } Console.ReadKey();
            }
        }
    }
}
Начало. Решил задать так массив, дальше думаю через if, тут вся и загвоздка...

Последний раз редактировалось timzyed; 14.11.2013 в 17:50.
timzyed вне форума Ответить с цитированием
Старый 14.11.2013, 19:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ясно. Действительно мучительно )
Код:
{
    class Program
    {
        static int[,] arr;
        static void chg(int j){
         for (int i = 0; i < n/2; i++){int k=arr[j,i];arr[j,i]=arr[j,n-i];arr[j,n-i]=k;}
        }
        static void ror(int j){ int k=arr[j,n-1];
         for (int i = n-2; i>=0; i--){arr[j,i+1]=arr[j,i];}arr[j,0]=k;
        }
        static void zero(int j){ int k=arr[j,n-1];
         for (int i = 0; i<n; i++){arr[j,i]=0;};
        }
        static void Main(string[] args)
        {
            int temp1 = 0, temp2 = 0;
            int n = Convert.ToInt32(Console.ReadLine());
             arr = new int[n,n];

            Random rnd = new Random();
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    arr[i, j] = rnd.Next(-100, 100);
                    Console.Write(arr[i, j] + " ");
                    Console.Write(" ");
                } 
            }

            for(int i=0;i<n;i++)
             if (arr[i,0]>0) chg(i); else if (arr[i,0]<0) ror(i); else zero(i);

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Console.Write(arr[i, j] + "\t");
                } Console.WriteLine("");
            }

            Console.ReadKey();
        }
    }
}
Как-то так в общем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2013, 22:39   #5
timzyed
 
Регистрация: 14.11.2013
Сообщений: 8
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static int[] arr;
        static void chg(int j)
        {
            for (int i = 0; i < n / 2; i++) { int k = arr[i]; arr[ i] = arr[n - i]; arr[n - i] = k; }
        }
        static void ror(int j)
        {
            int k = arr[j, n - 1];
            for (int i = n - 2; i >= 0; i--) { arr[i + 1] = arr[i]; } arr[0] = k;
        }
        static void zero(int j)
        {
            int k = arr[ n - 1];
            for (int i = 0; i < n; i++) { arr[i] = 0; };
        }
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            int[] arr = new int[n];
            Random rnd = new Random();
            for (int i = 0; i < n; i++)
            {
                {
                    arr[i] = rnd.Next(-50, 50);
                    Console.Write(arr[i] + " ");
                    Console.Write(" ");
                }
            }
            for (int i = 0; i < n; i++)
                if (arr[i] > 0) chg(i); else if (arr[i] < 0) ror(i); else zero(i);

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Console.Write(arr[i] + "\t");
                } Console.WriteLine("");
            }
            Console.ReadKey();
        }
    }
}
кое-что убрал и сделал массив одномерным, но ругается и выдает 7 раз одну ошибку (относительно каждой n )... "Элемент "n" не существует в текущем контексте."
timzyed вне форума Ответить с цитированием
Старый 14.11.2013, 22:57   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну да. Сделай его глобальным для класса.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2013, 23:39   #7
timzyed
 
Регистрация: 14.11.2013
Сообщений: 8
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            int[] arr = new int[n];

            Random rnd = new Random();
            for (int i = 0; i < n; i++)
            {
                {
                    arr[i] = rnd.Next(-50, 50);
                    Console.Write(arr[i] + " ");
                    Console.Write(" ");
                }
            }

            for (int i = 0; i < n; i++)

           if (arr[i] > 0) 
                {for ( i = 0; i < n / 2; i++)
                { int k = arr[i]; arr[i] = arr[n - 1]; arr[n - 1] = k; }} 
           else
              if (arr[i] < 0)
                    {int k = arr[ n - 1];
                        for ( i = n - 2; i >= 0; i--) { arr[i + 1] = arr[i]; } arr[0] = k;}
               else
                    {int k = arr[n - 1];
                        for ( i = 0; i < n; i++) { arr[i] = 0; }}

            for (int i = 0; i < n; i++)
            {
                {
                    Console.Write(arr[i] + "\t");
                }
            }
            Console.ReadKey();
        }
    }
}
Что-то я перемудрил, ввожу размер массива и все, на этом консоль останавливается и ничего не делает. Значит эта конструкция не работает
Код:
for (int i = 0; i < n; i++)

           if (arr[i] > 0) 
                {for ( i = 0; i < n / 2; i++)
                { int k = arr[i]; arr[i] = arr[n - 1]; arr[n - 1] = k; }} 
           else
              if (arr[i] < 0)
                    {int k = arr[ n - 1];
                        for ( i = n - 2; i >= 0; i--) { arr[i + 1] = arr[i]; } arr[0] = k;}
               else
                    {int k = arr[n - 1];
                        for ( i = 0; i < n; i++) { arr[i] = 0; }}

            for (int i = 0; i < n; i++)
            {
                {
                    Console.Write(arr[i] + "\t");
                }
timzyed вне форума Ответить с цитированием
Старый 14.11.2013, 23:55   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Стесняюсь спросить, почему функциями не захотел сделать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сокеты и обмен переменными ruN00b Работа с сетью в Delphi 9 24.07.2013 10:45
динамический массив с переменными типа double ogyrcheg C# (си шарп) 4 25.02.2012 10:55
Одномерный массив,обмен местами элементов fasty Помощь студентам 1 09.11.2011 14:27
большой массив данных с несколькими переменными Dexter_M Microsoft Office Excel 27 04.10.2011 14:21
Документ с переменными Demonss Microsoft Office Excel 1 19.08.2011 07:32