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

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

22.04.2014, 01:04. Просмотров 1379. Ответов 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)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2014, 01:04
Ответы с готовыми решениями:

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

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

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

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

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

6
titans2011
304 / 265 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
22.04.2014, 15:05 2
Цитата Сообщение от Ton1k Посмотреть сообщение
все элементы которого положительны
А если это первый столбец, то предыдущего нет, соответственно и менять нечего.
0
Metall_Version
2124 / 1261 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
Завершенные тесты: 2
22.04.2014, 15:10 3
titans2011, имеется ввиду первый столбец с положительными элементами . считать слева на право
0
titans2011
304 / 265 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
22.04.2014, 15:16 4
Цитата Сообщение от Metall_Version Посмотреть сообщение
имеется ввиду первый столбец с положительными элементами . считать слева на право
Я это прекрасно понял. Я имею ввиду, что если этот столбец будет первым по счету, т.е. крайний левый. То по условию задачи нужно изменить предыдущий столбец. А как его менять, если его нет? Вот что я имел ввиду.
0
Metall_Version
2124 / 1261 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
Завершенные тесты: 2
22.04.2014, 15:19 5
ну наверное в таком случае ничего не изменять
0
titans2011
304 / 265 / 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
Ton1k
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 2
22.04.2014, 20:06  [ТС] 7
titans2011, большое спасибо!
0
22.04.2014, 20:06
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2014, 20:06

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

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

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


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

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

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