Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 08.10.2015
Сообщений: 41

Добавление единицы в массив по координатам

05.04.2017, 19:13. Показов 1916. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется двумерный массив, он заполнен нулями.
Пользователь вводит координаты x,y.
x = i - строка
y = j - столбец
Допустим пользователь ввел x = 2; y = 3. Значит в массив во 2-ую строку 3-ий столбец, нужно вместо нуля вставить единицу.
Пример:
0 0 0 0
0 0 1 0
0 0 0 0
0 0 0 0
Подскажите как реализовать
Мои наработки самой программы:
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int x, y, n, i = 0, j = 0;
            
            Console.WriteLine("Введите количество точек:");
            n = Convert.ToInt32(Console.ReadLine());
            int[,] C = new int[n, n];
            Random rnd = new Random();
            Console.WriteLine("Введите координаты точки (x,y):");
            for (i = 0; i < n; i++)
            {
                x = Convert.ToInt32(Console.ReadLine());
                y = Convert.ToInt32(Console.ReadLine());
 
            }
            
            Console.WriteLine("Матрица:");
            for (i = 0; i < n; i++)
            {
                for (j = 0; j < n; j++)
                {
                    C[i, j] = rnd.Next(0);
                    Console.Write(C[i, j] + " ");
                }
                Console.WriteLine();
            }
 
            
                Console.ReadKey();
        }
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2017, 19:13
Ответы с готовыми решениями:

Добавление единицы к названию файла, если он существует
Здравствуйте, подскажите пожалуйста как быть! Задача следующая: У меня есть файл. Этот файл я переношу в определенную, указанную папку. ...

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

Добавление орг.единицы при регистрации пользователя
Всем привет! а как сделать чтобы при регистрации нового пользователя его лотусимя формировалось например так: ...

10
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
05.04.2017, 19:45
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
class Program
    {
        static void output(int[,] m, int n)
        {
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                    Console.Write(m[i, j] + "\t");
                Console.Write("\n");
            }
        }
        static void Main(string[] args)
        {
            Console.Write("N = ");
            int n = int.Parse(Console.ReadLine());
            int[,] matr = new int[n,n]; 
            for (int i = 0; i < n; i++)
                for (int j = 0; j < n; j++)
                    matr[i, j] = 0;
            Console.WriteLine("Исходная матрица:"); output(matr, n);
            Console.Write("x = "); int x = int.Parse(Console.ReadLine())-1;
            Console.Write("y = "); int y = int.Parse(Console.ReadLine())-1;
            matr[x, y] = 1;
            Console.WriteLine("Результат:"); output(matr,n);
            Console.ReadLine();
        }
    }
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
05.04.2017, 20:02
Hitoku,
C#
1
2
3
            for (int i = 0; i < n; i++)
                for (int j = 0; j < n; j++)
                    matr[i, j] = 0;
а этот кусок зачем? при инициализации массива, он сразу заполнен нулями
еще не понятно, зачем в метод
C#
1
static void output(int[,] m, int n)
передавать n?
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
05.04.2017, 20:08
Лучший ответ Сообщение было отмечено Figer как решение

Решение

Diamante, приучили меня даже нули присваивать... Будем избавляться. А так если?
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
class Program
    {
        static void output(int[,] m)
        {
            for (int i = 0; i <= m.Rank; i++)
            {
                for (int j = 0; j <= m.Rank; j++)
                    Console.Write(m[i, j] + "\t");
                Console.Write("\n");
            }
        }
        static void Main(string[] args)
        {
            Console.Write("N = ");
            int n = int.Parse(Console.ReadLine());
            int[,] matr = new int[n, n];
            Console.WriteLine("Исходная матрица:"); output(matr);
            Console.Write("x = "); int x = int.Parse(Console.ReadLine()) - 1;
            Console.Write("y = "); int y = int.Parse(Console.ReadLine()) - 1;
            matr[x, y] = 1;
            Console.WriteLine("Результат:"); output(matr);
            Console.ReadLine();
        }
    }
1
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
05.04.2017, 20:33
Hitoku, сам то проверял? .Rank дает кол-во измерений, для двумерного массива .Rank даст 2, а если размер 5 на 6?
тут нужен .GetLength()
вот почитай, очень удобная штукенция
https://msdn.microsoft.com/ru-... .110).aspx
1
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
05.04.2017, 20:43
Diamante, ну по примеру квадратная матрица, так что, тут вполне подойдёт, я думаю. Да, проверял выводит всё
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
05.04.2017, 20:45
имхо лучше писать для общего случая, тогда частный всегда правильно отработает, но не наоборот...
а ты на каком размере массива проверял? задай n = 7, и посмотри какой массив тебе распечатается через Rank
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
05.04.2017, 20:49
Diamante, всё, понял ошибку с GetLength разобрался, будем использовать

Добавлено через 59 секунд
Исправленный метод
C#
1
2
3
4
5
6
7
8
9
        static void output(int[,] m)
        {
            for (int i = 0; i < m.GetLength(0); i++)
            {
                for (int j = 0; j < m.GetLength(1); j++)
                    Console.Write(m[i, j] + "\t");
                Console.Write("\n");
            }
        }
0
0 / 0 / 1
Регистрация: 08.10.2015
Сообщений: 41
05.04.2017, 21:31  [ТС]
Цитата Сообщение от Hitoku Посмотреть сообщение
Diamante, ну по примеру квадратная матрица, так что, тут вполне подойдёт, я думаю. Да, проверял выводит всё
Всё верно, планируется использовать квадратную матрицу

Добавлено через 5 минут
Hitoku, ещё такой вопрос.
Если пользователь ввёл 2-ую строку и 3-ий столбец, то единица должна добавиться в 3-ую строку и 2-ой столбец, т.е. туда и туда.
0 0 0 0
0 0 1 0
0 1 0 0
0 0 0 0
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
05.04.2017, 21:46
после
C#
1
matr[x, y] = 1;
добавь строку
C#
1
matr[y, x] = 1;
1
0 / 0 / 1
Регистрация: 08.10.2015
Сообщений: 41
05.04.2017, 22:02  [ТС]
Diamante, спасибо большое, всё так просто оказалось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2017, 22:02
Помогаю со студенческими работами здесь

Добавление точек по координатам мыши OpenGL 3.1
Здравствуйте! Нужно написать программу для рисования разного рода кривых. Пользователь вводит координаты точек по клику мыши на виджете...

Функция сложения двух чисел, используя только добавление единицы
Написать функцию сложения двух чисел, используя только прибавление единицы.

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

Подкскажите как организовать добавление единицы до ключевых слов вместе, а не по одному, после нахождения файл
import os import fnmatch DIR_NAME = input('Dir: ') FILE_MASK = input('Mask: ') KEYWORDS_FILE = input('Keywords filename: ') ...

Замена нулей на единицы и единицы на нули в матрицах с использованием функций
Всем доброго времени суток! Пишу программу в которой должна производиться замена нулей, в третьем столбце, на единицы в матрице а. А в...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru