12 / 12 / 0
Регистрация: 05.07.2013
Сообщений: 82
1

Не могу вывести диапазон в массиве

05.07.2013, 12:50. Показов 3601. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задание: В программу нужно ввести массив A, целых чисел. Далее ввести целое число B и C. С генерировать массив Y, из элементов массива A , которые соответствуют условию, где элемент массива А больше B и меньше С. Вывести массив значений.
Реализовал: ввод значений, конвертацию массива с string[] в int[], сортировку по упорядочиванию, вот не могу реализовать сам выбор с упорядочивания массива по диапазону от B до C. Если не трудно, помогите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2013, 12:50
Ответы с готовыми решениями:

Ссылка на диапазон в массиве
Здравствуйте! Задачка следующая: Есть массив такого вида...

Почему такой диапазон в массиве?
Почему задан такой диапазон "array"? Известно что объем массива и переменных в статической памяти...

В массиве, количество элементов которого больше 3-х найти 3 минимальных и вывести их индексы.Не могу доработать,код имеется...
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Найти диапазон символов в одномерном массиве
Нужно ввести последовательность символов( не более 30) из клавиатуры. В диапазоне от первого...

10
46 / 46 / 18
Регистрация: 20.04.2013
Сообщений: 126
05.07.2013, 13:14 2
покажите свой код - так будет легче подсказать
0
12 / 12 / 0
Регистрация: 05.07.2013
Сообщений: 82
05.07.2013, 13:19  [ТС] 3
Цитата Сообщение от Lomin Посмотреть сообщение
покажите свой код - так будет легче подсказать
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
//зарание прошу извенения за гавнокод))) только учусь)))
 
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Task5
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите массив целых чисел через запятую");
            string strArrayA = Console.ReadLine();
            Console.WriteLine("Введите цело число B");
            int valueB = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите целое число C");
            int valueC = Convert.ToInt32(Console.ReadLine());
            SortArray instanceArrayA = new SortArray();
            int[] notSortArrayA = instanceArrayA.InitializationArrayA(strArrayA);
            int[] sortArrayA = instanceArrayA.trueSortArray(notSortArrayA);
            int[] ArrayY = instanceArrayA.SortArrayMethod(sortArrayA, valueB, valueC);
        } 
    }
 
    class SortArray
    {
        private int[] ArrayInt;
 
        public int[] InitializationArrayA(string ArrayA)
        {
            string[] sortArray = ArrayA.Split(',');
            ArrayInt = new int[ArrayA.Length];
            for (int i = 0; i < ArrayA.Length; i++)
            {
                ArrayInt[i] = Convert.ToInt32(ArrayA[i]);
            }
            return ArrayInt;
        }
 
        public int[] trueSortArray(int[] trueSort)
        {
            int buffer = 0;
            for (int i = 0; i < trueSort.Length; i++)
            {
                for (int j = 0; j < trueSort.Length - 1; j++)
                {
                    if (trueSort[j] > trueSort[j + 1])
                    {
                        buffer = trueSort[j + 1];
                        trueSort[j + 1] = trueSort[j];
                        trueSort[j] = buffer;
                    }
                }
            }
            return trueSort;
        }
        public int[] SortArrayMethod(int[] sortArrayValue, int valueB, int valueC)
        {
            if (true)
            {
 
            }
      }
    }
 }
0
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
05.07.2013, 13:46 4
Задание строго на массивах?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public int[] SortArrayMethod(int[] sortArrayValue, int valueB, int valueC)
{
            //1 способ: LINQ
           // int[] arr = sortArrayValue.Where(x => x > B && x < C).ToArray();
            //return arr;
 
            //2 способ:
            List<int> list= new List<int>();
            foreach (int val in sortArrayValue)
            {
                if (val > B)
                {
                    if (val < C)
                        arr3.Add(val);
                    else break;
                }
            }
            return list.ToArray();
}
1
12 / 12 / 0
Регистрация: 05.07.2013
Сообщений: 82
05.07.2013, 13:51  [ТС] 5
Да! и нельзя использовать методы sort, add, так сказать вручную, без классов управления массивами .net framework, к сожалению.
0
8 / 8 / 2
Регистрация: 15.05.2013
Сообщений: 32
05.07.2013, 13:56 6
Пользуйтесь List<> -ом, а чтобы проверить элементы используйте цикл foreach.
Массивы объявляй вот так
C#
1
List<int> myarrayA=new List<int>();
C#
1
2
3
4
5
foreach (int i in myarrayA) 
{
 if (i>B && i<C) 
{ myarrayY.Add(i);}
}
1
12 / 12 / 0
Регистрация: 05.07.2013
Сообщений: 82
05.07.2013, 15:51  [ТС] 7
Цитата Сообщение от Tonoyankar Посмотреть сообщение
Пользуйтесь List<> -ом, а чтобы проверить элементы используйте цикл foreach.
Массивы объявляй вот так
C#
1
List<int> myarrayA=new List<int>();
C#
1
2
3
4
5
foreach (int i in myarrayA) 
{
 if (i>B && i<C) 
{ myarrayY.Add(i);}
}
Спасибо за ответ, сейчас делаю.

Добавлено через 1 час 40 минут
Все равное не получаеться(((

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Task5
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите массив целых чисел через запятую");
            string strArrayA = Console.ReadLine();
            Console.WriteLine("Введите цело число B");
            int valueB = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите целое число C");
            int valueC = Convert.ToInt32(Console.ReadLine());
            SortArray instanceArrayA = new SortArray();
            int[] notSortArrayA = instanceArrayA.InitializationArrayA(strArrayA);
            int[] sortArrayA = instanceArrayA.trueSortArray(notSortArrayA);
            int[] ArrayY = instanceArrayA.SortArrayMethod(sortArrayA, valueB, valueC);
            for (int i = 0; i < ArrayY.Length; i++)
            {
                Console.WriteLine("{0}", ArrayY[i]);
            }
            Console.ReadLine();
   } 
    }
 
 class SortArray
    {
        private int[] ArrayInt;
        private int[] value1;
        private int[] intArrrayBuffer;
 
        public int[] InitializationArrayA(string ArrayA)
        {
            string[] sortArray = ArrayA.Split(',');
            ArrayInt = new int[sortArray.Length];
            for (int i = 0; i < sortArray.Length; i++)
            {
                ArrayInt[i] = Convert.ToInt32(sortArray[i]);
            }
            return ArrayInt;
        }
 
        public int[] trueSortArray(int[] trueSort)
        { 
 
            int intArrrayBuffer = 0;
            for (int i = 0; i < trueSort.Length; i++)
            {
                for (int j = 0; j < trueSort.Length - 1; j++)
                {
                    if (trueSort[j] > trueSort[j + 1])
                    {
                        intArrrayBuffer = trueSort[j + 1];
                        trueSort[j + 1] = trueSort[j];
                        trueSort[j] = intArrrayBuffer;
                    }
                }
            }
            return trueSort;
        }
 
 
 
 
        public int[] SortArrayMethod(int[] sortArrayValue, int valueB, int valueC)
        { 
            for (int i = 0; i < sortArrayValue.Length; i++)
            {
                
                if (sortArrayValue[i] > valueB && sortArrayValue[i] < valueC)
                {
                  intArrrayBuffer[i] = sortArrayValue[i];
                }
            }
            return intArrrayBuffer;
        }
    } 
}
0
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
05.07.2013, 16:02 8
Попробуйте так. Вывод на консоль только нужно дописать:
Код
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
static void Main(string[] args)
{
    int[] arr = SortArray.NewArray(10);
    arr = SortArray.BubbleSort(arr);
    arr = SortArray.GetRange(arr, 100,0);
}
 
static class SortArray
{
    public static int[] NewArray(int length)
    {
        int[] result = new int[length];
        Random rand = new Random();
        for (int i = 0; i < length; i++)
        {
            result[i] = rand.Next(0,30);
        }
        return result;
    }
 
    public static int[] BubbleSort(int[] array)
    {
        int[] result = array;
        for (int i = 0; i < result.Length - 1; i++)
        {
            for (int j = i + 1; j < result.Length; j++)
            {
                if (result[i] > result[j])
                {
                    int temp = result[i];
                    result[i] = result[j];
                    result[j] = temp;
                }
            }
        }
        return result;
    }
 
    public static int[] GetRange(int[] array, int B, int C)
    {
        int pos_b = -1, pos_c = -1;
 
        for (int i = 0; i < array.Length; i++)
        {
            if (array[i] > (B > C ? C : B) && array[i] < (C > B ? C : B)) { pos_b = i; pos_c = i + 1; break; }
        }
        for (int i = pos_b + 1; i < array.Length; i++)
        {
            if (array[i] < (C > B ? C : B)) { pos_c++; }
            else break;
        }
 
        if (pos_b == -1 || pos_c == -1) return null;
 
        int[] result = new int[pos_c - pos_b];
        for (int i = 0; i < result.Length; i++)
        {
            result[i] = array[i + pos_b];
        }
        return result;
    }
}
1
12 / 12 / 0
Регистрация: 05.07.2013
Сообщений: 82
05.07.2013, 16:13  [ТС] 9
Цитата Сообщение от Kruds Посмотреть сообщение
Попробуйте так. Вывод на консоль только нужно дописать:
СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!! СПАСИБО!!!
0
8 / 8 / 2
Регистрация: 15.05.2013
Сообщений: 32
05.07.2013, 16:16 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
public int[] SortArrayMethod(int[] sortArrayValue, int valueB, int valueC)
        {
            int myArraylength = 0;
            int myArrayIndex = 0;
            for (int i = 0; i < sortArrayValue.Length; i++)
            {
 
                if (sortArrayValue[i] > valueB && sortArrayValue[i] < valueC)
                {
                    myArraylength++;
                }
            }
            intArrrayBuffer = new int[myArraylength];
            for (int i = 0; i < sortArrayValue.Length; i++)
            {
 
                if (sortArrayValue[i] > valueB && sortArrayValue[i] < valueC)
                {
                    intArrrayBuffer[myArrayIndex] = sortArrayValue[i];
                    myArrayIndex++;
                }
            }
            return intArrrayBuffer;
        }
1
12 / 12 / 0
Регистрация: 05.07.2013
Сообщений: 82
05.07.2013, 16:18  [ТС] 11
Цитата Сообщение от Tonoyankar Посмотреть сообщение
Поменяй свой метод этим
Спасибо, сделал!
0
05.07.2013, 16:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2013, 16:18
Помогаю со студенческими работами здесь

Как указать диапазон IP адресов в массиве
всегда указывал один ip в массиве $ip = array( '66.249.78.38', '66.249.78.91',...

Не могу разобраться в коде. Диапазон чисел
Такой код, не могу понять, почему не пропускает) я новичок если что, так что не засирайте, а...

Не могу задать нужный диапазон в графике в Maple
Уважаемые форумчане! Столкнулся с проблемой при построении графика в Maple. Решаю систему из 4 ДУ...

Asus RT N65U не могу открыть диапазон портов
Доброго времени суток. Проблема на рутере Asus RT N65U немагу открыть диапазон портов...


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

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

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