С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
MariaK
3 / 3 / 2
Регистрация: 10.03.2013
Сообщений: 80
1

Дана матрица размера M × N. Поменять местами столбец с номером 1 и последний из столбцов, содержащих только положительные элементы. Если требуемых

13.06.2013, 20:46. Просмотров 942. Ответов 3
Метки нет (Все метки)

Не могу найти ошибку((
Дана матрица размера M × N. Поменять местами столбец с номером 1 и последний из столбцов, содержащих только положительные элементы. Если требуемых столбцов нет, то вывести матрицу без изменений.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
 
            int[,] a = new int[5, 5];
            Random rn = new Random();
            for (int i = 0; i < a.GetLength(0); i++)
                for (int j = 0; j < a.GetLength(1); j++)
                    a[i, j] = rn.Next(-9, 9);
            {
                Console.WriteLine("Исходный массив: ");
            }
 
            {
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    for (int j = 0; j < a.GetLength(1); j++)
                        Console.Write(" " + a[i, j]);
                    Console.WriteLine();
                }
                Console.WriteLine("---------");
            }
 
            int k = a[0, 4];
          for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                    
                    {
                        k = a[0,i];
                        a[0,i] = a[4,i];
                       a[4,i] = k;
                    }
            }
                Console.WriteLine();
                Console.WriteLine("Полученный массив");
                for (int i = 0; i < a.GetLength(0); i++)
                {
                    for (int j = 0; j < a.GetLength(1); j++)
 
                        Console.Write(" " + k);
                    Console.WriteLine();
                }
 
                Console.Read();
            }
        }
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2013, 20:46
Ответы с готовыми решениями:

Дана матрица размера М×N. Удалить её последний столбец
Помогите пожалуйста исправить ошибки ещё в одной задачи ну или заново написать...

Дана матрица размера N×M. Поменять местами столбцы
Есть такая вот задачка. На мой взгляд, должна работать.Компилятор выдает...

Дана матрица размера N×M. Поменять местами столбцы матрицы с min и max суммой положительных элементов
Здравствуйте задали написать код, и я не понимаю как сделать, всё что смог...

Дана матрица размера M × N (M и N — четные числа). Поменять местами левую верхнюю и правую нижнюю четверти матрицы
Дана матрица размера M × N (M и N — четные числа). Поменять местами левую...

Поменять местами первый и последний столбцы матрицы, содержащие только положительные элементы
Здравствуйте! Пишу код using System; using System.Collections.Generic; using...

3
freeelijah
53 / 53 / 23
Регистрация: 02.09.2009
Сообщений: 285
13.06.2013, 21:41 2
не вижу где у вас проверка на то, что все элементы столбца неотрицательны
0
MariaK
3 / 3 / 2
Регистрация: 10.03.2013
Сообщений: 80
13.06.2013, 21:54  [ТС] 3
Цитата Сообщение от freeelijah Посмотреть сообщение
не вижу где у вас проверка на то, что все элементы столбца неотрицательны
действительно нет. но мне хотя бы просто сделать, чтобы менял первый и последний. просто понять алгоритм
0
memphis
630 / 191 / 65
Регистрация: 12.12.2012
Сообщений: 385
13.06.2013, 23:09 4
Проверяйте:
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
using System;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void PrintArr(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                    Console.Write("{0}\t", a[i, j]);
 
                Console.WriteLine();
            }
        }
 
        static void ExchangeColumn(int[,]a, int c1, int c2)
        {
            int tmp;
 
            for (int i = 0; i < a.GetLength(0); i++)
            {
                tmp = a[i, c1];
                a[i, c1] = a[i, c2];
                a[i, c2] = tmp;
            }
        }
 
        static void Main()
        {
            int i = 5;
            int j = 7;
            int[,] arr = new int[i, j];
 
            Random rn = new Random();
 
            for (i = 0; i < arr.GetLength(0); i++)
                for (j = 0; j < arr.GetLength(1); j++)
                    arr[i, j] = rn.Next(-2, 10);
            
            Console.WriteLine("Исходный массив: ");
            PrintArr(arr);
            Console.WriteLine();
 
            // Ищем последний столбец по заданию.
            bool isPos;
            for (j = arr.GetLength(1) - 1; j > 0; --j)
            {
                isPos = true;
                for (i = 0; i < arr.GetLength(0); i++)
                {
                    if (arr[i, j] < 0)
                    {
                        isPos = false;
                        break;
                    }
                }
 
                if (isPos)
                    break;
            }
 
            if (j == 0)
                Console.WriteLine("Требуемых столбцов не нашлось.");
            else
                ExchangeColumn(arr, 0, j);
            
            Console.WriteLine("Полученный массив");
            PrintArr(arr);
 
            Console.Read();
        }
    }
}
Добавлено через 1 час 5 минут
Ошибочка. Строка 54 должна быть: if (arr[i, j] < 1)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2013, 23:09

В матрице поменять местами столбец с номером N с тем, который содержит только отрицательные элементы
Вот эта не понятная. Есть решение у кого? Дана матрица размера MxN. Поменять...

Дана матрица. Надо поменять местами первый и последний столбцы
namespace матрицы { class Program { public static void Main(string...

B заданном одномерном массиве размером N поменять местами первый и последний положительные элементы
5. В заданном одномерном массиве размером N поменять местами первый и последний...


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

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

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