В матрице поменять местами наибольшие элементы в первом и последнем столбце - C#

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

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

В матрице (задаётся вручную) поменять местами наибольшие элементы в 1ом и последнем столбце. Помогите найти ошибку
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите элементы массива: ");
            int m, n, i, j;
            int i1 = 0;
            int j1 = 0;
            int i2 = 0;
            int j2 = 0;
            m=int.Parse(Console.ReadLine());
            n = int.Parse(Console.ReadLine());
            int[,] mass = new int[m, n];
            for ( i = 0; i < m; i++)
                for ( j = 0; j < n; j++)
                mass[i,j] = int.Parse(Console.ReadLine()); 

            for ( i = 0; i < m; i++)
            {
                for ( j = 0; j < n; j++)
 
                    Console.Write(mass[i, j] + "\t");
                Console.WriteLine();
            }
 
            int max = mass[0, 0];
            int max1 = mass[0, 0];
            int p = mass[0, 0];
 
            Console.Write("Нажмите Enter для продолжения");
            Console.ReadLine();
 
            for (i = 0; i < m; i++)
                for ( j = 0; j < n; j++)
                {
                    if (mass[i, j] > max)
                    {
                        max = mass[i, j];
                        i1 = i;
                        j1 = j;
                    }
 
                }

            for ( i = 0; i < m; i++)
                for ( j = n - 1; j > m; j--)
                {
                    if (mass[i, j] > max1)
                    {
                        max1 = mass[i, j];
                       i2 = i;
                        j2 = j;
 
                    }
 
                }
           
            mass[i1, j1] = max;
            mass[i2, j2] = max1;
            for ( i = 0; i < m; i++)
                for ( j = 0; j < n; j++)
 
                    p = mass[i1, j1];
            mass[i1, j1] = mass[i2, j2];
            mass[i2, j2] = p;

            Console.WriteLine("Меняем значения {0}(максимальное число 1го столбца) и {1}" +
            "(максимально число последнего столбца) друг с другом", max, max1);
            Console.Write("Нажми Enter для замены местами элементов");
            Console.ReadLine();

            for ( i = 0; i < m; i++)
            {
                for ( j = 0; j < n; j++)
 
                    Console.Write(mass[i, j] + "\t");
                Console.WriteLine();
            }
            Console.ReadLine();
 
        }
    }
}

Решение задачи: «В матрице поменять местами наибольшие элементы в первом и последнем столбце»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int m, n, i, j;
            int i1 = 0;
            int i2 = 0;
            Console.WriteLine("Введите кол-во строк: ");
            m = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите кол-во столбцов: ");
            n = int.Parse(Console.ReadLine());
            int[,] mass = new int[m, n];
            Console.WriteLine("Введите элементы массива: ");
            for (i = 0; i < m; i++)
                for (j = 0; j < n; j++)
                    mass[i, j] = int.Parse(Console.ReadLine());
 
            for (i = 0; i < m; i++)
            {
                for (j = 0; j < n; j++)
 
                    Console.Write(mass[i, j] + "\t");
                Console.WriteLine();
            }
 
            int max = mass[0, 0];
            int max1 = mass[0, n-1];
 
            Console.Write("Нажмите Enter для продолжения");
            Console.ReadLine();
 
            for (i = 0; i < m; i++)
            {
                if (mass[i, 0] > max)
                {
                    max = mass[i, 0];
                    i1 = i;
                }
                if (mass[i, n - 1] > max1)
                {
                    max1 = mass[i, n - 1];
                    i2 = i;
                }
            }
 
            mass[i2, n-1] = max;
            mass[i1, 0] = max1;
 
            Console.WriteLine("Меняем значения {0}(максимальное число 1го столбца) и {1}" +
            "(максимально число последнего столбца) друг с другом", max, max1);
            Console.Write("Нажми Enter для замены местами элементов");
            Console.ReadLine();
 
            for (i = 0; i < m; i++)
            {
                for (j = 0; j < n; j++)
 
                    Console.Write(mass[i, j] + "\t");
                Console.WriteLine();
            }
            Console.ReadLine();
 
        }
    }
}

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


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

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

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