НОД и НОК, двумерный массив - C#

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

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

Ребзяяя, помогите, есть прога на нахождение наибольшего общего делимого(НОД) и наибольшего общего кратного(НОК). Но заданна как в двумерном массиве. вот то что было
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите массив целых положительных чисел через пробел");
            String[] ss = Console.ReadLine().Split(' ');
            int[] arr = new int[ss.Length];
            for (int i = 0; i < arr.Length; i++) arr[i] = Int32.Parse(ss[i]);
 
            int nok = arr[0];
            int nod = nok;
 
            for (int i = 1; i < arr.Length; i++)
            {
                nod = getNOD(nod, arr[i]);
                nok = getNOK(nok, arr[i]); // функции getNOK и getNOD для двух чисел
            }
 
            Console.WriteLine("Для массива НОД = {0}, НОК = {1}", nod, nok);
            Console.ReadLine();
        }
 
        // Возвращает наибольший общий делитель двух целых положительных чисел
        static int getNOD(int a, int b) {
            for (int i = (int) Math.Sqrt(Math.Max(a, b)); i >= 2; i--) 
                 if (((a % i) == 0) & ((b % i) == 0)) {
                    return i;
                 }
            return 1;
        }
 
        // Возвращает наименьшее общее кратное двух целых положительных чисел
        static int getNOK(int a, int b)
        {
            return (int) a * b / getNOD(a, b);
        }
    }
}
и вот что я пытался исправить, но ошибкииии... помогите кто сможет
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            const int m = 3, n = 3;
            int j = 0;
            int i = 0;
            int[,] a = new int[m, n] 
            {
            {2,4,6},
            {8,10,12},
            {14,16,18}
        };
            Console.WriteLine("Исходный массив");
 
            for (i = 0; i < m; i++)
            {
 
                for (j = 0; j < n; j++) ;
                Console.Write(" " + a[i, j]);
                Console.WriteLine();
 
            }

            {
                int nok = a[0, 0];
                int nod = nok;
                nod = getNOD(nod, a[i,j]);
                nok = getNOK(nok, a[i,j]);
 
            }
 
            /*Console.WriteLine("Для массива НОД = {0}, НОК = {1}", getNOK, getNOD);
            Console.ReadLine();*/
        }

        static int getNOD(int c, int b)
        {
            for (int i = (int)Math.Min(c, b); i > 1; i--)
                if (((c % i) == 0) & ((b % i) == 0))
                {
                    return i;
                }
            return 1;
        }

        static int getNOK(int c, int b)
        {
            return (int) c * b / getNOD(c, b);
        
        }
    }
}

Решение задачи: «НОД и НОК, двумерный массив»

textual
Листинг программы
static void Main()
{
    int[,] a = { { 2, 4, 6 }, { 8, 10, 12 }, { 14, 16, 18 } };
    int gcd = a[0, 0], lcm = 1;
    foreach (var x in a)
    {
        gcd = getNOD(gcd, x);
        lcm = getNOK(lcm, x);
    }
 
    Console.WriteLine("gcd = {0} lcm = {1}", gcd, lcm);
    Console.ReadLine();
}

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


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

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

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