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

На главной диагонали разместить сумму элементов, находящихся в одной строке и столбце с элементом главной диагонали

16.04.2020, 18:15. Показов 1698. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помощи)
нужно на главной диагонали разместить сумму элементов, находящихся в одной строке и столбце с элементом главной диагонали.
пример:
2 5 11
2 5 9
5 2 1

23 5 11
2 18 9
5 2 27

вот что имею сейчас, но считает почему-то неправильно

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp7
{
    class Program
    {
 
        static void Main(string[] args)
        {
            Console.WriteLine("Введите количество строк: ");
            int m = int.Parse(Console.ReadLine());
 
            Console.WriteLine("Введите количество столбцов: ");
            int n = int.Parse(Console.ReadLine());
 
            int[,] Mas1 = new int[m, n];
            
            Random rand = new Random();
 
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Mas1[i, j] = rand.Next(-100, 100);
                    Console.Write(Mas1[i, j] + " ");
                }
                Console.WriteLine();
            }
            Console.WriteLine();
            for (int i = 0; i < m; i++)
            {
                int sum = 0;
                int sum1 = 0;
                for (int j = 0; j < n; j++)
                {
                    sum += Mas1[i, j];
                    
                    Mas1[i, i] = sum1;
                }
                
                
            }
            Console.WriteLine();
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Console.Write(Mas1[i,j] + " ");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.04.2020, 18:15
Ответы с готовыми решениями:

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

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

На главной диагонали матрицы разместить суммы элементов, которые лежат на той же строке и том же столбце
(Тема перемещена из раздела &quot;Pascal&quot;) Заполнить матрицу случайными числами.На главной диагонали разместить суммы элементов,которые...

8
8 / 6 / 2
Регистрация: 04.05.2019
Сообщений: 58
16.04.2020, 19:01
Предлагаю повысить уровень абстракции и забить на эффективность кода. Вынести получение строки и колонки по индексу в отдельные методы, которые возвращают массив переданного типа. Получить их сумму методом линкью Array.Sum и вычесть элемент главной диагонали дважды, так как он будет входить в оба массива.

Добавлено через 10 минут
Хотя получилось придумать че-то типа такого, без сторонних методов.

C#
1
2
3
4
5
6
7
8
9
10
// int[][] Arr
 
int Sum;
for (int i1 = 0; i1 < Arr.Length; i1++)
{
    Sum = -2 * Arr[i1][i1];
    for (int i2 = 0; i2 < Arr.Length; i2++) 
        Sum += Arr[i2][i1] + Arr[i1][i2];
    Arr[i1][i1] = Sum;
}
0
1 / 1 / 0
Регистрация: 07.04.2020
Сообщений: 22
16.04.2020, 19:27  [ТС]
Ну проблема только в том, что я в вузе на 1 курсе и кроме как обычных циклов, нам ничем нельзя пользоваться((

Добавлено через 4 минуты
Хотя даже при таком цикле программа выдает ошибку на входе во вложенный цикл
0
8 / 6 / 2
Регистрация: 04.05.2019
Сообщений: 58
17.04.2020, 04:17
Лучший ответ Сообщение было отмечено Dmytro Siasko как решение

Решение

Цитата Сообщение от Dmytro Siasko Посмотреть сообщение
Хотя даже при таком
При таком как у меня? Используйте нормальные рваные массивы, либо замените все индексы на вида [,] , и перед циклами напишите int N = Math.Sqrt(Arr.Length) и во всех циклах замените условие на i1<N, i2<N. Сам код полностью рабочий с вашим примером: https://ideone.com/4PxeKn
Вас там силком что ли заставляют эти многоуровневые массивы ущербные использовать?
Еще интересно, зачем вводить и строки и колонки, если тогда главная диагональ может стать неочевидной в зависимости от метода вычисления? Думаю у вас она всегда должна быть размера NxN;
1
1 / 1 / 0
Регистрация: 07.04.2020
Сообщений: 22
17.04.2020, 12:04  [ТС]
Да все верно, нужен размер NxN, но даже такую запись кода она не принимают, ссылаясь на то, что тут темы будущих уроков. Просто заставляют сейчас строить свой "велосипед", используя кучу вложенных циклов и тд.
0
8 / 6 / 2
Регистрация: 04.05.2019
Сообщений: 58
17.04.2020, 18:21
Цитата Сообщение от Dmytro Siasko Посмотреть сообщение
даже такую запись кода она не принимают
Всмысле? Т.е. мое решение не устроило? Они там совсем е___сь что ли? Куда тут еще циклы? Два вложника хватает для решения этой задачи без сторонних методов. Лично я бы забил. На комиссии можно отстоять своё решение. Препод должен принимать все варианты, которые соответствуют выданному им ТЗ. А в ТЗ ничего нет про количество циклов и алгоритм решения. Сказано только что на входе и что на выходе.
0
1 / 1 / 0
Регистрация: 07.04.2020
Сообщений: 22
17.04.2020, 18:23  [ТС]
Там преподша такая просто))
Но ответ есть правильным, спасибо вам БОЛЬШОЕ!)
0
8 / 6 / 2
Регистрация: 04.05.2019
Сообщений: 58
17.04.2020, 18:30
Цитата Сообщение от Dmytro Siasko Посмотреть сообщение
Там преподша такая
Это ВУЗ или ПТУ ? Если ВУЗ и не секрет, то можно в лс какой?
0
1 / 1 / 0
Регистрация: 07.04.2020
Сообщений: 22
17.04.2020, 18:32  [ТС]
ВУЗ, но я с Украины)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.04.2020, 18:32
Помогаю со студенческими работами здесь

заполнить маирцу случайными числами.На главной диагонали разместить суммы элементов которые лежат на той же строке и том же столбце...
..

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

В каждой строке матрицы с отрицательным элементом на главной диагонали найти сумму элементов
В каждой строке массива целых чисел с отрицательным элементом на главной диагонали найти: а) сумму элементов; б) наибольший элемент.

Определить сумму элементов выше главной диагонали и ниже главной диагонали. какая из них больше
в матрице размером 5х5 определить сумму элементов выше главной диагонали и ниже главной диагонали. какая из них больше.

Найти сумму всех нечетных элементов выше главной диагонали и заменить ей все нечетные элементы ниже главной диагонали.
Разработать программу в среде матлаб для нахождения суммы всех нечетных элементов выше главной диагонали и замены этой суммой всех нечетных...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru