Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2015, 16:04   #1
boomman
 
Регистрация: 05.12.2015
Сообщений: 7
По умолчанию двумерный массив как сделать С#

Дан двумерный массив найти максимальный элемент и заполнить строку и столбец в которых он расположен нулями.
boomman вне форума Ответить с цитированием
Старый 05.12.2015, 16:55   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

В чём у Вас сложности? Свои попытки были?
Streletz вне форума Ответить с цитированием
Старый 05.12.2015, 19:06   #3
boomman
 
Регистрация: 05.12.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
В чём у Вас сложности? Свои попытки были?
через консоль нужно
Код:
 int max = array[0,0];
            int row = 0;
            int colomn = 0;
 
            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    if (max < array[i, j])
                    {
                        max = array[i, j];
                        row = i;
                        colomn = j;
                    }
                }
            }
 
            ShowArray(array, "Исходный массив");
 
            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    if (i == row)
                        array[row, j] = 0;
                    if (j == colomn)
                        array[i, colomn] = 0;
                }
            }
 
            ShowArray(array, "Преобразованный массив");
        }
 
        public static void ShowArray(int[,] array, string massage)
        {
            Console.WriteLine(massage);
 
            for (int i = 0; i < array.GetLength(0); i++)
            {
                Console.WriteLine();
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    Console.Write("{0} ", array[i,j]);
                }
            }
            Console.WriteLine();
            Console.WriteLine();
        }
boomman вне форума Ответить с цитированием
Старый 05.12.2015, 19:54   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
через консоль нужно
Ну. Чем твой код тебя не устроил? Что в нем не так?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.12.2015, 20:12   #5
boomman
 
Регистрация: 05.12.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну. Чем твой код тебя не устроил? Что в нем не так?
не работает в вижуал 10чет(
boomman вне форума Ответить с цитированием
Старый 05.12.2015, 20:27   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Показывай код полностью.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.12.2015, 23:16   #7
boomman
 
Регистрация: 05.12.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Показывай код полностью.



что я не так делаю?
Изображения
Тип файла: jpg JmZHq28yU_k.jpg (101.3 Кб, 143 просмотров)
Тип файла: jpg 8N9EdtIGi6Q.jpg (97.6 Кб, 133 просмотров)
boomman вне форума Ответить с цитированием
Старый 05.12.2015, 23:53   #8
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,327
По умолчанию

Задача вроде элементарная, но с первого раза я ошибку не нашёл. Добавлю, что на этом участке:
Код:
for (int i = 0; i < array.GetLength(0); i++)
{
    for (int j = 0; j < array.GetLength(1); j++)
    {
        if (i == row)
            array[row, j] = 0;
        if (j == column)
            array[i, column] = 0;
    }
}
то же самое будет, если написать:

Код:
if (i == row)
    array[i, j] = 0;
if (j == column)
    array[i, j] = 0;
Когда i будет равен row, а j будет в этот момент равен column, то выполнится два раза одна и та же операция array[i, j] = 0;

Привычнее видеть такую запись:
Код:
if ((i == row) || (j == column))
{
    array[i, j] = 0;
}
Это, конечно, мелочь.
8Observer8 вне форума Ответить с цитированием
Старый 06.12.2015, 00:20   #9
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,327
По умолчанию

Я не вижу ошибок. При каких входных данных она проявляется?

Код:
using System;

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] array = new int[3, 3] {{1, 3, 4}, {7, 2, 9}, {0, 2, 3}};

            int max = array[0, 0];
            int row = 0;
            int colomn = 0;

            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    if (max < array[i, j])
                    {
                        max = array[i, j];
                        row = i;
                        colomn = j;
                    }
                }
            }

            ShowArray(array, "Исходный массив");

            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    if (i == row)
                        array[row, j] = 0;
                    if (j == colomn)
                        array[i, colomn] = 0;
                }
            }

            ShowArray(array, "Преобразованный массив");
        }

        public static void ShowArray(int[,] array, string massage)
        {
            Console.WriteLine(massage);

            for (int i = 0; i < array.GetLength(0); i++)
            {
                Console.WriteLine();
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    Console.Write("{0} ", array[i, j]);
                }
            }
            Console.WriteLine();
            Console.WriteLine();
        }
    }
}
Изображения
Тип файла: png Array.png (25.4 Кб, 17 просмотров)
8Observer8 вне форума Ответить с цитированием
Старый 06.12.2015, 11:50   #10
boomman
 
Регистрация: 05.12.2015
Сообщений: 7
По умолчанию

Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
Я не вижу ошибок. При каких входных данных она проявляется?

Код:
using System;

namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] array = new int[3, 3] {{1, 3, 4}, {7, 2, 9}, {0, 2, 3}};

            int max = array[0, 0];
            int row = 0;
            int colomn = 0;

            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    if (max < array[i, j])
                    {
                        max = array[i, j];
                        row = i;
                        colomn = j;
                    }
                }
            }

            ShowArray(array, "Исходный массив");

            for (int i = 0; i < array.GetLength(0); i++)
            {
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    if (i == row)
                        array[row, j] = 0;
                    if (j == colomn)
                        array[i, colomn] = 0;
                }
            }

            ShowArray(array, "Преобразованный массив");
        }

        public static void ShowArray(int[,] array, string massage)
        {
            Console.WriteLine(massage);

            for (int i = 0; i < array.GetLength(0); i++)
            {
                Console.WriteLine();
                for (int j = 0; j < array.GetLength(1); j++)
                {
                    Console.Write("{0} ", array[i, j]);
                }
            }
            Console.WriteLine();
            Console.WriteLine();
        }
    }
}
твой код работает, а можешь сделать что бы вводил размер и сам массив через консоль?
boomman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив, как решить!!! not_table Microsoft Office Excel 1 14.03.2012 17:58
Двумерный массив(матрица).Кое-что не могу понять и сделать Виндовс 7 Паскаль, Turbo Pascal, PascalABC.NET 0 02.01.2012 20:27
как обработать двумерный массив из файла _LEX_ Помощь студентам 6 02.01.2012 18:56
Stringgrid как двумерный массив Gypsy Общие вопросы Delphi 3 20.01.2010 10:09
Как сделать чтобы двумерный массив который создается в функции можно было использовать в других функциях Olya90 Помощь студентам 4 20.04.2009 18:39