Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/41: Рейтинг темы: голосов - 41, средняя оценка - 4.76
11 / 11 / 0
Регистрация: 18.02.2010
Сообщений: 153
1

Определить есть ли в данном массиве строка, состоящая только из положительных элементов

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

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Опять же задание с массивом. в текстовом файле хранится массив, его надо считать и определить, есть ли в данном массиве строка, состоящая только из положительных элементов. метод считывания массива я реализовал, метод вывода на экран тоже, вопрос встал в том, как более 'правильнее' реализовать метод с определением положительных элементов в строке.
на ум приходит что то вроде
C#
1
2
3
4
5
6
7
8
9
static void Opredelit(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); ++i)
            {
                for (int j = 0; j < a.GetLength(1), a[i,j]>0; ++j)
                
                Console.WriteLine("строка{0}: положительные", i);
            }         
        }
есть вариантик еще с goto реализовать, но хотелось бы без него. не подскажете мысль какую по этому вопросу?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2010, 12:30
Ответы с готовыми решениями:

Определить, есть ли в массиве строка, состоящая только из положительных элементов
Определить, есть ли в данном массиве (Ступенчатый массив) строка, состоящая только из положительных...

Определить есть ли в заданном массиве строка, состоящая только из положительных элементов
При решении задач из данного пункта использовать двумерный массив. Дан массив размером nxn,...

Определить, есть ли в нем строка (столбец), состоящая только из отрицательных элементов
4. Дан двумерный массив целых чисел. Определить есть ли в нем строка(столбец), состоящая только из...

Определить, есть ли в данном массиве строка, в которой ровно пять отрицательных элемента
Дан двумерный массив размером n x m, заполненный случайным образом. Определить, есть ли в данном...

6
22 / 22 / 3
Регистрация: 03.11.2009
Сообщений: 50
23.12.2010, 12:42 2
Приветствую.
можно так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 static void Opredelit(int[,] a)
        {
            
            for (int i = 0; i < a.GetLength(0); ++i)
            {
                Boolean isNegative = false;
                for (int j = 0; i < a.GetLength(1);j++ )
                {
                   if(a[i,j]<0)
                   {
                       isNegative = true;
                       break;
                   }
                }
                if(!isNegative)
                    Console.WriteLine("строка{0}: положительные", i);
            }         
        }
1
11 / 11 / 0
Регистрация: 18.02.2010
Сообщений: 153
23.12.2010, 12:50  [ТС] 3
блин не пашет, выводит IndexOutOfRangeException вот код весь, может подскажешь где ошибка?
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
using System;
using System.IO;
 
namespace ConsoleApplication
{
    class Class
    {
        static int[,] Input(out int n)
        {
            StreamReader file = new StreamReader("d:/t.txt");
            string s = file.ReadToEnd();
            file.Close();
            string[] строка = s.Split('\n');
            string[] столбец = строка[0].Split(' ');
            int[,] a = new int[строка.Length, столбец.Length];
            int t = 0;
            n = 0;
            for (int i = 0; i < строка.Length; i++)
            {
                столбец = строка[i].Split(' ');
                for (int j = 0; j < столбец.Length; j++)
                {
                    t = Convert.ToInt32(столбец[j]);
                    a[i, j] = t;
                    //Console.Write(" {0}", a[i, j]);
                }
                //Console.WriteLine();
            }
 
            return a;
        }
 
        static void Print(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); ++i, Console.WriteLine())
                for (int j = 0; j < a.GetLength(1); ++j)
                    Console.Write("{0} ", a[i, j]);
        }
 
        static void Opredelit(int[,] a)
        {
 
            for (int i = 0; i < a.GetLength(0); ++i)
            {
                Boolean isNegative = false;
                for (int j = 0; i < a.GetLength(1); j++)
                {
                    if (a[i, j] < 0)
                    {
                        isNegative = true;
                        break;
                    }
                }
                if (!isNegative)
                    Console.WriteLine("строка{0}: положительные", i);
            }
        }
 
        static void Main()
        {
            try
            {
                int n;
                int[,] myArray = Input(out n);
                Console.WriteLine("Исходный массив:");
                Print(myArray);
                Opredelit(myArray);
                //Console.WriteLine("Среднее арифметическое ={0:f2}", rez);
            }
            catch (FileNotFoundException)
            {
                Console.WriteLine(" Файл не найден");
            }
            catch (FormatException)
            {
                Console.WriteLine(" Неверное значение данных");
            }
            catch (IndexOutOfRangeException)
            {
                Console.WriteLine(" Выход за границы массива");
            }
 
        }
    }
}
0
22 / 22 / 3
Регистрация: 03.11.2009
Сообщений: 50
23.12.2010, 13:01 4
на таком наборе пашет
5 -5 8
12 456 -8
12 4 2

видимо в файле данные не соответствуют.
P.S.
не задавай имена переменным - кирилицей, это просто убожество
При считывании каждой строки проверяй сколько там "чисел", если не соответствуют ожидаемому красиво выходи из функции
1
11 / 11 / 0
Регистрация: 18.02.2010
Сообщений: 153
23.12.2010, 13:07  [ТС] 5
вот мой файл
4 7 3 3
9 -2 5 7
2 1 -9 2
6 9 1 3
не работает, и на твоем файле тоже не хочет работать((
а по части кирилицы, так это прихоть препода
0
22 / 22 / 3
Регистрация: 03.11.2009
Сообщений: 50
23.12.2010, 13:10 6
C#
1
 for (int j = 0; j < a.GetLength(1); j++)
не правильно указал переменную j (было i)
медленно в дебаге проходись по программе и будет ясно где ошибка

Препод немного не в себе видать, обидно что такое встречается.
1
11 / 11 / 0
Регистрация: 18.02.2010
Сообщений: 153
23.12.2010, 13:14  [ТС] 7
блин, точно опечатка, буду повнимательней. спасибо за помощь
0
23.12.2010, 13:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2010, 13:14
Помогаю со студенческими работами здесь

Определить, есть ли в массиве строка, в которой ровно пять отрицательных элементов
C# Console application. Дан двумерный массив размером n x m, заполненный случайным образом....

Определить, есть ли в данном массиве строка, состоящая только из положительных элементов
Определить, есть ли в данном массиве строка, состоящая только из положительных элементов #include...

Определить, есть ли в данном массиве строка (столбец), состоящая только из положительных элементов.
Определить, есть ли в данном массиве строка (столбец), состоящая только из положительных элементов.

Определить, есть ли в данном массиве строка (столбец), состоящая только из положительных или нулевых элементов
Определить, есть ли в данном массиве строка (столбец), состоящая только из положительных или...


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

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