.NET 4.x Создать случайно сгенерированную (рандомную) матрицу, сложить элементы выделенные в картинке - C#

Узнай цену своей работы

Формулировка задачи:

Задача: Создать случайно сгенерированную (рандомную) матрицу n x n, сложить элементы выделенные в данной картинке: 1 вариант: 1 2 * 4 5 2 * * * 6 * * * * * 4 * * * 8 5 6 * 8 9 2 вариант: 1 2 * 4 5 2 * 4 * 6 * 4 5 6 * 4 * 6 * 8 5 6 * 8 9 По 2 варианту есть наработки, но с небольшими недочетами: 0 и последний член тоже складывается...:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int i, j, n;
            n = Convert.ToInt32(Console.ReadLine());
            int[,] matrix = new int[n, n];
            for (i = 0; i < n; ++i)
            {
                for (j = 0; j < n; ++j)
                {
                    matrix[i, j] = i + j;
                    if (i == j-n/2 ^ j == i-n/2 ) matrix[i, j] = 0;
                    if (i == j ^ j == i - n / 2 ^ i == j + n / 2) matrix[i, j] = 0;
                    Console.Write(matrix[i, j] + "\t");
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
}
Результат: * 2 * 4 5 2 * 4 * 6 * 4 * 6 * 4 * 6 * 8 5 6 * 8 * Проблема в том, что я не могу никак выделить диагонали четвертей... Если кто занимался такой охинеей, помогите пожалуйста понять это сие чудо C#... Заранее спасибо!

Решение задачи: «.NET 4.x Создать случайно сгенерированную (рандомную) матрицу, сложить элементы выделенные в картинке»

textual
Листинг программы
using System;
 
class Class {
    static void Main() {
        int n;  //размер матрицы
        int i,j,k;  //для циклов
        int q=1; 
        int r; //для рандома
        int ser,ser_l,ser_r; //для матрицы шаблона (индекс середины, лев и правого края)
        int zn=1; //знак +1 или -1
        int sum=0;
        bool b=false;
        
        n=5;
        Console.WriteLine("матрица размером {0}x{0}",n);
        
        int[,] arr =new int[n,n];   //матрица  задания  
        int [,] t = new int[n,n];   //доп матрица
        Random ran = new Random();
        
        
        //заполнение матрицы случ числами
        for (i=0; i<n; i++) {
            for (j=0; j<n; j++) {
                r=ran.Next(0,9);
                //arr[i,j]=q++;
                arr[i,j]=r;
            }
        }
 
        Console.WriteLine("");
        
        //матрица шаблон (нечетное кол элементов)
        
        ser=(n/2);
        ser_l=ser;
        ser_r=ser;
        
        for (i=0; i<n; i++) {
        
                    t[i,ser_l]=1;
                    t[i,ser_r]=1;                       
                    
                    ser_l-=1*(zn);
                    ser_r+=1*(zn);
                    if (ser_l==0) zn=-1;                    
            }
        
        //суммирование  
        for (i=0; i<n; i++) {
            for (j=0; j<n; j++) {
                if (t[i,j]==1) {
                    //Console.WriteLine(arr[i,j]);
                    sum=sum+arr[i,j];       
                }               
            }
        }
            
        Console.WriteLine("sum: "+sum);
        
        Console.WriteLine("");
                
        //PRINT матрица рандомная
        Console.WriteLine("заданная матрица:");
        for (i=0; i<n; i++) {
            for (j=0; j<n; j++) {
                Console.Write("{0}",arr[i,j]+" ");
                if (j==(n-1)) Console.WriteLine();
            }
        }   
        
        Console.WriteLine();
        
        //PRINT матрица шаблон
        Console.WriteLine("матрица шаблон:");
        for (i=0; i<n; i++) {
            for (j=0; j<n; j++) {
                Console.Write("{0}",t[i,j]+" ");
                if (j==(n-1)) Console.WriteLine();
            }
        }
        
        
    Console.ReadLine();
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы