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

Нужно исправить код - C#

31.10.2013, 16:36. Просмотров 360. Ответов 5
Метки нет (Все метки)

Вывести массив змейкой в 1 строку. Начиная с левого верхнего угла. Матрица квадратная. У меня выводит каждую строку по 2 раза, как это исправить? Вот код:
http://www.cyberforum.ru/csharp-beginners/thread1002608.html
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
            Console.Write("Размерность матрицы: ");
            int n = int.Parse(Console.ReadLine());
            int[,] arr= new int[n,n];
            Random rnd=new Random();
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    arr[i, j] = rnd.Next(-9, 9);
                }
            }
            Console.WriteLine("Матрица имеет вид:");
            Console.WriteLine();
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    Console.Write("{0,2} ", arr[i, j]);
                }
                Console.WriteLine();
                Console.WriteLine();
            }
            Console.WriteLine("Разложим в виде строки:");
            for (int i = 0; i < arr.GetLength(0); i++)
            {
 
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    Console.Write("{0} ", arr[i, j]);
                }
                for (int k = arr.GetLength(1) - 1; k >= 0; k--)
                {
                    Console.Write("{0} ", arr[i, k]);
                }
                
            }
            Console.ReadLine();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2013, 16:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нужно исправить код (C#):

Нужно исправить код на условие
Нужно исправить код на условие // если a&gt;5 и четное a*2 b+3 // if 0&lt;=a&lt;==5...

Если мне не нужно привязывать код к событию, то где размещать код?
Кто-нибудь умный ответьте. Если мне не нужно привязывать код к событию. Если...

нужно исправить ошибку
доброго времени суток, вот код программы, пожалуйста исправьте что не так, уже...

Нужно исправить ошибки
var names = new...

Исправить код
Не могу сделать для вещественных чисел(в коде для целочисленных). И бывает...

5
da1z
191 / 191 / 29
Регистрация: 03.12.2009
Сообщений: 853
31.10.2013, 16:46 #2
Если я правильно понял, то вот это вам не надо
C#
1
2
3
4
                for (int k = arr.GetLength(1) - 1; k >= 0; k--)
                {
                    Console.Write("{0} ", arr[i, k]);
                }
0
valera_21
365 / 351 / 91
Регистрация: 05.01.2010
Сообщений: 1,458
Завершенные тесты: 5
31.10.2013, 16:47 #3
решение скажем так "в лоб"
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        int[,] arr = new int[10,10];
        for (var i = 0; i < 10; i++ )
        {
            if (i%2 == 0)
            {
                for (var j = 0; j < 10; j++)
                {
                    Console.Write(arr[i,j] + " ");
                }
            } else
            {
                for (var j = 9; j >= 0; j--)
                {
                    Console.Write(arr[i, j] + " ");
                }
            }
        }
1
da1z
191 / 191 / 29
Регистрация: 03.12.2009
Сообщений: 853
31.10.2013, 16:54 #4
можно наверно ещё так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
for (int i = 0; i < arr.GetLength(0); i+2)
            {
 
                for (int j = 0; j < arr.GetLength(1); j++)
                {
                    Console.Write("{0} ", arr[i, j]);
                }
                for (int k = arr.GetLength(1) - 1; k >= 0; k--)
                {
                    Console.Write("{0} ", arr[i+1, k]);
                }
                
            }
Добавлено через 2 минуты
хотя предыдущий вариант лучше
0
kolorotur
Эксперт .NET
9917 / 8302 / 2037
Регистрация: 17.09.2011
Сообщений: 14,285
31.10.2013, 16:55 #5
Заумно, но как вариант сойдет:
C#
1
2
3
for (int i = 0, k = 1; i < m.GetLength(0); i++, k = -k)
    for (int j = (m.GetLength(1) - 1) * (i % 2); j < m.GetLength(1) && j >= 0; j += k)
        Console.Write("{0} ", m[i, j]);
Цитата Сообщение от da1z Посмотреть сообщение
C#
1
Console.Write("{0} ", arr[i+1, k]);
Рухнет при обходе матрицы с нечетным количеством строк.
0
Vexie
0 / 0 / 0
Регистрация: 27.10.2013
Сообщений: 6
31.10.2013, 17:28  [ТС] #6
Спасибо!)
0
31.10.2013, 17:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2013, 17:28
Привет! Вот еще темы с решениями:

Исправить код
Отредактируйте пожалуйста. Задание: Определить иерархию классов (в...

Исправить код
class Tel { protected string marka; protected int funk; string _marka...

Исправить код
После ввода слов, если в конце ставлю пробел, вылетает ошибка. И при вводе...

Что тут нужно исправить?
Доброго времени суток. Столкнулся с проблемой такого характера: при отладке и...


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

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

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