Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 14.12.2011, 20:22   #1
Vetal888888
 
Регистрация: 13.12.2011
Сообщений: 7
По умолчанию Как вывести на экран номер строки с максимальной суммой элементов и номер столбца с минимальной суммой?

Вот например я задаю произвольную квадратную матрицу...

Код:
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;

 namespace lab10_10
 {
 class Program
 {
 static void Main(string[] args)
 {
 Console.WriteLine("Введите размерность матрицы (nxn)");
 int n = Convert.ToInt16(Console.ReadLine()) ;
 int[,] B = new int[n, n];
 Random rnd = new Random();
 Console.WriteLine("Исходная матрица:");
 for (int i = 0; i < n; i++)
 {
 for (int j = 0; j < n; j++)
 {
 B[i, j] = rnd.Next(-10, 10);
 Console.Write("{0, 4}", B[i, j]);
 }
 Console.WriteLine();
 }
 }
 }
 }
А далее надо составить из сумм строк, одномерный массив и из сумм столбцов одномерный массив найти в них максимальный (в строках) и минимальный (в столбцах) и вывести на экран в конечном итоге НОМЕР строки (от первоночальной матрици!) с максимальной суммой элементов и номер столбца с минимальной суммой...Вот такую вот программку мне надо принести к зачёту, кто может помогите)Буду очень благодарен))
Vetal888888 вне форума Ответить с цитированием
Старый 14.12.2011, 21:21   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Разбирайтесь
Код:
   int[] C = new int[n];//массив для хранения суммы строк
            int[] D = new int[n];//массив для хранения суммы столбцов
            for (int i = 0; i < n; i++) //считаем сумму построчно
            {
                int Summa = 0;
                for (int j = 0; j < n; j++)
                {
                    Summa = Summa + B[i, j];
                }
                C[i]=Summa;
            }
            for (int j = 0; j < n; j++) //считаем сумму в столбцах
            {
                int Summa = 0;
                for (int i = 0; i < n; i++)
                {
                   Summa = Summa + B[i, j];
                }
                D[j] = Summa;
            }
            Console.WriteLine();
            int imax = 0;
            int jmin = 0;
            int max = -32768;
            int min = 32767;
            for (int i = 0; i < n; i++) //ищем максимальный элемент
            
                if (C[i] > max)
                {
                    max = C[i];
                    imax = i;
                }
            
            for (int j = 0; j < n; j++) //ищем минимальный элемент
            {
                if (D[j] < min)
                {
                    min = D[j];
                    jmin = j;
                }
            }
            Console.WriteLine();
            Console.Write("Summa Maximum = {0,2}",max+"    Row number: ");
            Console.Write(imax+1);
            Console.WriteLine();
            Console.WriteLine();
            Console.Write("Summa Minimum = {0,2}", min+ "   Col number: ");
            Console.Write(jmin+1);
            Console.WriteLine();
            Console.ReadLine();
GetMax вне форума Ответить с цитированием
Старый 15.12.2011, 10:04   #3
Vetal888888
 
Регистрация: 13.12.2011
Сообщений: 7
По умолчанию

Нефига не понял что ты сделал)))))Но спасибо большое!)))
Vetal888888 вне форума Ответить с цитированием
Старый 18.12.2011, 21:33   #4
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace proga
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите размерность матрицы (nxn)");
            int n = Convert.ToInt16(Console.ReadLine());
            int[,] B = new int[n, n];
            Random rnd = new Random();
            Console.WriteLine("Исходная матрица:");
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    B[i, j] = rnd.Next(-10, 10);
                    Console.Write("{0, 4}", B[i, j]);
                }
                Console.WriteLine();
            }
            Console.ReadLine();

            int[] res1 = new int[n];  //массив для хранения сумм строк
            int summ1 = 0;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    summ1 += B[i, j];   //суммируем элементы строки
                }
                res1[i] = summ1; //пишем сумму в массив
                summ1 = 0; //обнуляем переменную
            }

            int max = 0;    //индекс строки с максимальной суммой
            for (int j = 1; j < n; j++)
            {
                if (res1[j] > res1[max])   //если есть строка с суммой больше, то пишем в max её индекс
                    max = j;
            }
            Console.WriteLine("Номер строки с максимальной суммой элементов: "+max);
            Console.ReadLine();

            int[] res2 = new int[n];   //то же самое, только для столбцов
            int summ2 = 0;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    summ2 += B[j, i];  // индексы меняем местами, чтобы просматривались не строки, а столбцы.
                }
                res2[i] = summ2;
                summ2 = 0;
            }

            int min = 0;
            for (int j = 1; j < n; j++)
            {
                if (res2[j] < res1[min])
                    min = j;
            }

            Console.WriteLine("Номер столбца с минимальной суммой элементов: " + min);
            Console.ReadLine();
            
        }
    }
}
ardor вне форума Ответить с цитированием
Старый 20.12.2011, 13:46   #5
George Linchiki
Новичок
Джуниор
 
Регистрация: 20.12.2011
Сообщений: 1
По умолчанию Vot pravilnoe reshenie etoi zadachi

static void Main(string[] args)
{
Console.WriteLine("Input Array Size (nxn)");
int n = Convert.ToInt16(Console.ReadLine()) ;
int[,] B = new int[n, n];
Random rnd = new Random();
Console.WriteLine("Array:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
B[i, j] = rnd.Next(-10, 10); Console.Write("{0, 4}", B[i, j]);
}
Console.WriteLine(); Console.WriteLine();
}
Int32 Rsum = 0;
Int32 RMAX = -32768;
Int32 row = 0;
Int32 column =0;
Int32 Csum = 0;
Int32 CMIN = 32768;

for (int ii = 0; ii < n; ii++)
{
Rsum = 0;
Csum = 0;
for (int jj = 0; jj < n; jj++) { Rsum += B[ii, jj]; Csum += B[jj, ii]; }
if (Rsum > RMAX ) {row = ii; RMAX=Rsum ; }
if (Csum < CMIN) {column = ii; CMIN = Csum; }
}
Console.WriteLine( "Max Row {0} Max Row Sum {1}", row, RMAX);
Console.WriteLine("Min col {0} Min col Sum {1}",column,CMIN);
Console.ReadLine();
}
George Linchiki вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск столбца с макс. суммой элементов в двумерном массиве. oRik24 Помощь студентам 3 21.06.2011 13:20
В квадратной матрице найти столбец с максимальной суммой и строку с максимальной суммой (Pascal) Alexey355 Помощь студентам 1 26.03.2011 15:06
найти номер столбца с мин. суммой положительный элементов. olegozavr Паскаль, Turbo Pascal, PascalABC.NET 1 18.01.2011 19:59
Как найти наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов INFINITIFX Общие вопросы C/C++ 2 11.11.2010 10:55