Двумерный массив нужно превратить в динамические и зубчатые с использование foreach вместо for - C#

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

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

Найти среднее арифметическое элементов каждого из четных столбцов матрицы.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nomber2{
    class Program{
        static void Main(string[] args){
            double[,] a = new double[5, 2];
            Random rnd = new Random();
            int i, j, n = a.Length;
            for (i = 0; i < 5; i++)
                for (j = 0; j < 2; j++){
                    Console.Write("a[{0},{1}] = ", i, j);
                    a[i, j] = rnd.Next(-10, 10);
                    Console.WriteLine("{0}", a[i, j]);}
            double s = 0;
            for (i = 0; i < 5; i++)
                for (j = 0; j < 2; j++){
                    if (i % 2 == 0) s += a[i, j];
                    if (i == 0) s += a[i, j];}
            s /= n;
            for (i = 0; i < 5; i++)
                for (j = 0; j < 2; j++)
                    a[i, j] -= s;
            Console.WriteLine("s = {0}", s);
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
}}}
Нужно просто немного переделать его. Если знаете литературу (желательно не слишком сложную) скиньте ссылку.

Решение задачи: «Двумерный массив нужно превратить в динамические и зубчатые с использование foreach вместо for»

textual
Листинг программы
 static void Main(string[] args)
        {
 
 
 
            double[,] a = new double[5, 2];         // двумерный
            double[][] b = new double[a.GetLength(0)][];       // зубчатый
 
 
            // Заполняем двумерный рандомно и выводим для наглядности
            Random rnd = new Random();
           
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 2; j++)
                {
                    a[i, j] = rnd.Next(-10, 10);
                    Console.Write("{0}\t", a[i, j]);
                }
 
            }
 
            //создаем зубчатый
 
            for (int i = 0; i < a.GetLength(0); i++)
                b[i] = new double[a.GetLength(1)];
 
 
 
 
 
            Console.Write("\n----------------\n");
 
            // Заполнили двумерный рандомно и вывели для наглядности
 
 
 
            int n = 0,k=0;
            // переписываем двум в зуб 
 
            foreach (double x in a)
            {
                if (n<2)
                {
                    b[k][n++] = x;
                }
 
                else { n = 0; k++; b[k][n++] = x; }
 
 
            }
 
 
 
            // выведим зубчатый
 
            foreach (double[] x in b)
            {
                Console.WriteLine(string.Join("\t", x));
 
 
            }
 
 
 
 
        }

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


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

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

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