Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Как сделать подматрицу в данной матрице в отдельном методе https://www.cyberforum.ru/csharp-beginners/thread1059108.html
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Kursovaya_Rabota { class Metod {
C# Три return-a. Нужно чтобы возвращался рандомный
{private static Plastic RanodmPlastic(string name ) { var rnd = new Random(); { if (rnd.Next(3) == 1) return new Soft(name); ...
Болтун ВК для автоматического ответа пользователям C#
Хочу написать небольшую программку - "болтун". Для автоматического ответа пользователям (на их личные сообщения). Пока не думал насчет архитектуры. Волнует вопрос с получением и отправкой сообщений...
C# Что происходит при Array.Sort помогите описать строчку там два метода т.е. что там происходит Array.Sort(s, (p1, p) => p1.Mark.CompareTo(p.Mark));//метод сортировки по алфавиту и эти циклы что в них происходит for... https://www.cyberforum.ru/csharp-beginners/thread1058957.html
C# Составить трехмерный массив, количество строк столбцов и глубина массива вводятся с консоли, не превышая 10х10х10 https://www.cyberforum.ru/csharp-beginners/thread1058941.html
Помогите пожалуйста! задача составить трехмерный массив,количество строк столбцов и глубина массива вводятся с консоли,не превышая 10х10х10 1) массив заполняется с консоли 2)массив заполняется...
C# Найти приближенно все корни уравнения с точностью, используя метод Ньютона
Найти приближенно все (в том числе комплексные) корни уравнения f(x)=0 с точностью , используя метод Ньютона. УКАЗАНИЕ. Для поиска комплексных корней следует использовать комплексные начальные...
Сжать массив, переместив все ненулевые элементы в левую часть списка, а все нули-в правую часть C#
Дан список целых чисел. Требуется “сжать” его, переместив все ненулевые элементы в левую часть списка, не меняя их порядок, а все нули - в правую часть. Порядок ненулевых элементов изменять нельзя,...
C# В списке все элементы различны. Поменяйте местами минимальный и максимальный элемент этого списка В списке все элементы различны. Поменяйте местами минимальный и максимальный элемент этого списка. входные данные 3 4 5 2 1 выходные данные 3 4 1 2 5 помогите пожалуйста(( https://www.cyberforum.ru/csharp-beginners/thread1058885.html
C# Выполнить циклический сдвиг элементов массива вправо на 1 позицию https://www.cyberforum.ru/csharp-beginners/thread1058863.html
Доброго времени суток, решил попросить помощи у вас уважаемые форумчане... Не допускается использование операторов, прерывающих ход программы (break, goto). Ввод массивов, обработка и вывод...
C# Задать рандомайзер, который будет генерировать одну и ту же последовательность с одного и того же значения Как задать рандомайзер, который будет генерировать одну и ту же последовательность с одного и того же значения? в c++ это srand(число), а в c# как? https://www.cyberforum.ru/csharp-beginners/thread1058862.html
Kruds
700 / 700 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
Завершенные тесты: 1
28.12.2013, 15:02 0

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

28.12.2013, 15:02. Просмотров 1909. Ответов 2
Метки (Все метки)

Ответ

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
static void Main()
{
    int matrixSize = 4; //задали размерность матрицы
        
    //заполнение и вывод матрицы на экран
    int  iter = 1;
    int[,] matrix = new int[matrixSize, matrixSize];
    for (int i = 0; i < matrixSize; i++)
    {
        for (int j = 0; j < matrixSize; j++)
        {
            matrix[i, j] = iter++;
            Console.Write("{0}\t", matrix[i, j]);
        }
        Console.WriteLine();
    }
        
    //подсчет сумм диагоналей
    int[] values = new int[2 * matrix.GetLength(0) - 1];
    for (int i = 0; i < matrixSize; i++)
    {
        int sum = 0, sumSimmetr = 0;
        for (int j = 0; j <= i; j++)
        {
            sum += matrix[matrixSize - 1 - i + j, j];
            sumSimmetr += matrix[j, matrixSize - 1 - j];
        }
        values[i] = sum;
        values[values.Length - i - 1] = sumSimmetr;
    }
 
    Console.WriteLine("Суммы диагоналей: {0}", string.Join(", ", values));
    Console.Read();
}

2
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
76
77
78
79
80
81
class Program
{
    static void Main()
    {
        int SportsmansCount = 5;
        CompetitionResult[] results = new CompetitionResult[SportsmansCount];
        for (int i = 0; i < SportsmansCount; i++)
            results[i] = new CompetitionResult();
        BubbleSort(results);
        Console.WriteLine("Name\tDistance\tMarks\tTotal");
        foreach (CompetitionResult result in results)
            Console.WriteLine(result);
        Console.Read();
    }
 
    class CompetitionResult : IComparable<CompetitionResult>
    {
        string Name;
        int Distance;
        int[] Marks;
 
        public CompetitionResult()
        {
            Console.WriteLine("Введите имя спортсмена: ");
            this.Name = Console.ReadLine();
            Console.WriteLine("Введите дальность прыжка: ");
            this.Distance = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите пять оценок (через Enter):");
            this.Marks = new int[5];
            for (int i = 0; i < 5; i++)
                this.Marks[i] = int.Parse(Console.ReadLine());
        }
 
        public int GetTotal()
        {
            int sum = 60, max = int.MinValue, min = int.MaxValue;
            foreach (int mark in this.Marks)
            {
                if (mark < min)
                    min = mark;
                if (mark > max)
                    max = mark;
                sum += mark;
            }
            sum -= (max + min);
 
            if (this.Distance < 120)
                sum -= (120 - Distance) * 2;
            else
                sum += (Distance - 120) * 2;
 
            return sum;
        }
 
        public int CompareTo(CompetitionResult other)
        {
            int pointsCompareResult = this.GetTotal().CompareTo(other.GetTotal());
            if (pointsCompareResult == 0)
                return this.Name.CompareTo(other.Name);
            else
                return pointsCompareResult;
        }
 
        public override string ToString()
        {
            return String.Format("{0}\t{1}\t{2}\t{3}", this.Name, this.Distance, string.Join("; ", this.Marks), this.GetTotal());
        }
    }
 
    static void BubbleSort<T>(T[] array) where T : IComparable<T>
    {
        for (int i = 0; i < array.Length; i++)
            for (int j = i; j < array.Length; j++)
                if (array[i].CompareTo(array[j]) == -1)
                {
                    T tmp = array[i];
                    array[i] = array[j];
                    array[j] = tmp;
                }
    }
}


Вернуться к обсуждению:
Просуммировать элементы матрицы, расположенные на диагоналях, параллельных главной, включая главную диагональ
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2013, 15:02

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

Найти наибольшие элементы каждой строки матрицы и поместить их на главную диагональ
Найти наибольшие элементы каждой строки матрицы Z(16,16) и поместить их на главную диагональ....

Просуммировать элементы матрицы, расположенные на диагоналях, параллельных главной
Для заданного двумерного массива размером N N про- суммировать элементы, расположенные на...

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

Просуммировать элементы квадратной матрицы по каждой из линий, параллельных главной диагонали
оформить в виде процедуры и функции

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