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

Найти в матрице первый столбец, все элементы которого положительны

22.04.2014, 01:04. Просмотров 1965. Ответов 6
Метки нет (Все метки)

Необходимо найти в матрице первый столбец, все элементы которого положительны и знаки элементов предыдущего столбца изменить на противоположные.
Столбец я нашел, но не могу сменить знаки предыдущего.
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
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
  
          const  int m=3;
           const int n=3;
           int[,] arr = new int[m, n] {{2,1,1},
                                  {1,2,1},
                                  {0,3,0}};
 
        Console.WriteLine("Исходная матрица:"); //вывод исходной матрицы
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    Console.Write(arr[i, j] + "\t");
                }
                Console.WriteLine();
            }
 
 
            for (int j = 0; j < m; j++)
            {
                int count = 0;
                for (int i = 0; i < n; i++)
                {
                    if (arr[i, j] > 0) //если >0
                        
                    {
                        count++;
                        if (count == n)
                        {
                            Console.WriteLine("В столбце {0} - Все элементы больше 0.", j + 1);
                            //По идее тут идет замена знаков элементов предыдушего столбца(т.е первого)
                        }
 
                       
                    }
                    
                }
            }
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    Console.Write(arr[i, j] + "\t");
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2014, 01:04
Ответы с готовыми решениями:

Есть ли в матрице W (N,R) столбец, в котором все элементы не принадлежат промежутку (B,C)?
Есть ли в матрице W (N,R) столбец, в котором все элементы не принадлежат промежутку (B,C)?

Найти первый столбец матрницы, сумма элементов которого равна сумме элементов первой строки
Дана матрица А. Найти первый столбец, сумма элементов которого равна сумме элементов первой строки.

Удалить все столбцы в котором все элементы положительны
помогите решить пожалуйста:удалить все столбцы в котором все элементы положительны

Вывести строки матрицы с указанием их номеров, в которых все элементы положительны
Здраствуйте. Не могли бы вы мне помочь с моей программой. Я её сделала только что то у меня не так...

6
309 / 270 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
22.04.2014, 15:05 2
Цитата Сообщение от Ton1k Посмотреть сообщение
все элементы которого положительны
А если это первый столбец, то предыдущего нет, соответственно и менять нечего.
0
2132 / 1269 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
22.04.2014, 15:10 3
titans2011, имеется ввиду первый столбец с положительными элементами . считать слева на право
0
309 / 270 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
22.04.2014, 15:16 4
Цитата Сообщение от Metall_Version Посмотреть сообщение
имеется ввиду первый столбец с положительными элементами . считать слева на право
Я это прекрасно понял. Я имею ввиду, что если этот столбец будет первым по счету, т.е. крайний левый. То по условию задачи нужно изменить предыдущий столбец. А как его менять, если его нет? Вот что я имел ввиду.
0
2132 / 1269 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
22.04.2014, 15:19 5
ну наверное в таком случае ничего не изменять
0
309 / 270 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
22.04.2014, 15:32 6
Лучший ответ Сообщение было отмечено Ton1k как решение

Решение

Держите ваш код:
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
class Program
    {
 
        static void Main(string[] args)
        {
           const int m=4;
           const int n=3;
           int[,] arr ={{-2,1,1},{1,2,1},{0,3,0},{5,3,0}};
 
            Console.WriteLine("Исходная матрица:"); //вывод исходной матрицы
            printArray(arr,m,n);
 
            bool columnChange=true;
            for (int i = 0; i < n; i++)
            {
                int count = 0;
                for (int j = 0; j < m; j++)
                {
                    if (arr[j, i] > 0) //если >0
                    {
                        count++;
                        if (count == n && columnChange)
                        {
                            Console.WriteLine("В столбце {0} - Все элементы больше 0.", j );
                            if (i - 1 >= 0)
                            {
                                for (int k = 0; k < m; k++)
                                {
                                    arr[k,i-1] *= -1;
                                }
                            }
                            columnChange=false;
                        }
                       
                    }
                    
                }
            }
            printArray(arr, m, n);
            Console.ReadLine();
        }
 
        static void printArray(int[,] arr, int m, int n)
        {
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Console.Write(arr[i, j] + "\t");
                }
                Console.WriteLine();
            }
        }
    }
1
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 2
22.04.2014, 20:06  [ТС] 7
titans2011, большое спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2014, 20:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти в матрице первую строку, все элементы которой отрицательны.
Условие: Найти в матрице первую строку, все элементы которой отрицательны. Уменьшить все элементы...

Найти в матрице строки, где все элементы равны нулю
Доброго времени суток. Помогите пожалуйста решить задачу: Дана матрица А размером nxm. Найти в...

Найти в матрице первую строку, все элементы которой отрицательны
Найти в матрице первую строку, все элементы которой отрицательны. Уменьшить все элементы матрицы на...

Найти в матрице первый столбец, все элементы которого положительны
Здравствуйте . Помогите пожалуйста написать код. Уже 3 день бьюсь. не получается. Найти в...


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

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

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