Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2016, 22:20   #1
Ilya011
Пользователь
 
Регистрация: 21.11.2016
Сообщений: 12
По умолчанию [С# Массивы]: Дана прямоугольная матрица. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент

ПоможетеПожалуйста
с#
Дана прямоугольная матрица. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.

Последний раз редактировалось Вадим Мошев; 21.11.2016 в 22:34.
Ilya011 вне форума Ответить с цитированием
Старый 21.11.2016, 22:26   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Напиши хотя бы часть кода ввода прямоугольной матрицы
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 21.11.2016, 22:31   #3
Ilya011
Пользователь
 
Регистрация: 21.11.2016
Сообщений: 12
По умолчанию

Ну вот


Код:
Int32[,] m = new Int32[,] { { 1, 2, 3 }, { 2, -3, 4 }, { 3, 4, 5 }, { 6, 7, 8 } };

            for (Int32 iRow = 0; iRow <= m.GetUpperBound(0); iRow++)
            {
                for (Int32 iCol = 0; iCol <= m.GetUpperBound(1); iCol++)
                {
                    Console.Write(" {0}", m[iRow, iCol]);
                }
                Console.WriteLine();

Последний раз редактировалось Вадим Мошев; 21.11.2016 в 22:34.
Ilya011 вне форума Ответить с цитированием
Старый 21.11.2016, 22:51   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
for (Int32 iRow = 0; iRow <= m.GetUpperBound(0); iRow++)
            {
                Int32 sRow = 0;
                bool hasNegative = false;
                for (Int32 iCol = 0; iCol <= m.GetUpperBound(1); iCol++)
                {
                    if (m[iRow,iCol] < 0) hasNegative = true;
                        
                    sRow += m[iRow,iCol];
                }
                if(hasNegative) Console.Write("В строке {0} есть отрицательный элемент. Сумма ряда = {1}", iRow+1, sRow);
            }
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 21.11.2016, 23:48   #5
Ilya011
Пользователь
 
Регистрация: 21.11.2016
Сообщений: 12
По умолчанию

о,спасибо большое))

теперь с этим нужна мне помощь ...)

Заменить столбцы, имеющие четное количество отрицательных элементов, столбцом, где находится минимальный элемент матрицы.

Код:
  Int32[,] m = new Int32[,] { { -2, 0, -3, 5}, { 2, 4, 4, 9 }, {11, 3, -4, 5 }, { -6, 7, 8, 7 } };

            for (Int32 iRow = 0; iRow <= m.GetUpperBound(0); iRow++)
            {
                for (Int32 iCol = 0; iCol <= m.GetUpperBound(1); iCol++)
                {
                    Console.Write(" {0}", m[iRow, iCol]+" ");
                }
                Console.WriteLine();

Последний раз редактировалось Аватар; 22.11.2016 в 08:59.
Ilya011 вне форума Ответить с цитированием
Старый 22.11.2016, 08:57   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Ilya011 Посмотреть сообщение
где находится минимальный элемент матрицы.
Сделай это, дальше подскажем
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 22.11.2016, 19:54   #7
Ilya011
Пользователь
 
Регистрация: 21.11.2016
Сообщений: 12
По умолчанию

Вот:

Int32[,] m = new Int32[,] { { -2, 5, -3, 5 }, { 2, 4, 4, 9 }, { 11, 3, -9, 5 }, { -6, 7, 8, 7 } };

for (Int32 iRow = 0; iRow <= m.GetUpperBound(0); iRow++)
{
for (Int32 iCol = 0; iCol <= m.GetUpperBound(1); iCol++)
{
Console.Write(" {0}", m[iRow, iCol] + " ");
}
Console.WriteLine();
}
{
//Поиск минимального элемента в матрице
Int32 iRowMin = 0;
Int32 iColMin = 0;
for (Int32 iRow = 0; iRow <= m.GetUpperBound(0); iRow++)
{
for (Int32 iCol = 0; iCol <= m.GetUpperBound(1); iCol++)
{
if (m[iRow, iCol] < m[iRowMin, iColMin])
{
iRowMin = iRow;
iColMin = iCol;
}
}
}
Console.WriteLine("Min: {0}", m[iRowMin, iColMin]);
}
Console.ReadLine();
Ilya011 вне форума Ответить с цитированием
Старый 22.11.2016, 20:45   #8
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
            Int32 negCount = 0;
            for (Int32 iCol = 0; iCol <= m.GetUpperBound(1); iCol++)
            {
               
                for (Int32 iRow = 0; iRow <= m.GetUpperBound(0); iRow++)
                {
                    if(m[iRow,iCol]<0) negCount++;
                }
                Console.Write("столбец {0}, количество отрицательных {1,2}",iCol+1,negCount);
                if ((negCount % 2 == 0) && (negCount>0))
                {
                    Console.Write(" (замена столбца)");
                    for (Int32 iRow = 0; iRow <= m.GetUpperBound(0); iRow++) m[iRow,iCol]=m[iRow,iColMin];
                   
                }
                Console.WriteLine();
                negCount = 0;
            }
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 23.11.2016, 19:17   #9
Ilya011
Пользователь
 
Регистрация: 21.11.2016
Сообщений: 12
По умолчанию

Спасибо
Ну тут же он просто пишет, где заменить ,но заменяет
Лан
Ilya011 вне форума Ответить с цитированием
Старый 23.11.2016, 19:20   #10
Ilya011
Пользователь
 
Регистрация: 21.11.2016
Сообщений: 12
По умолчанию

Можете помочь с псевдокодов, пожалуйстааа...
Хоть что-то есть,но и некоторое не знаю правильно ли

for (int i = 1; i < size - 1; i++)
{
//Проверка еденственного экземпляра в массиве А
if ((A[i] != A[i + 1]) && (A[i] != A[i - 1])) Aflag = false;
else Aflag = true;
if (Aflag == false)
{
for (int j = 0; j < size - 1; j++)
{
//Поиск единственного элемента из массива А в массиве В
if (A[i] == B[j]) Bflag = true;
//Повторение элемента в массиве В
if (B[j] == B[j + 1]) Cflag = true;
//Если (2) и (3) истина, то заносим значение в массив С
if ((Bflag == true) && (Cflag == true))
{
C[element] = A[i];
element++;
Bflag = false;
Cflag = false;
break;
}
Bflag = false;
Cflag = false;
}
}
}
//Проверка последнего элемента в массиве А
if (A[size - 1] != A[size - 2])
{
for (int j = 0; j < size - 1; j++)
{
if (A[size - 1] == B[j]) Bflag = true;
if (B[j] == B[j + 1]) Cflag = true;
if ((Bflag == true) && (Cflag == true))
{
C[element] = A[size - 1];
element++;
Bflag = false;
Cflag = false;
break;
}
Bflag = false;
Cflag = false;
}
}
//Выключение секундомера
int t2 = Environment.TickCount;
for (int i = 0; i < element; i++)
Console.Write(C[i] + " ");
Console.WriteLine("\nVremya " + (t2 - t1) + " ms");
Console.ReadLine();

}
}
}



i-цикл от 1 до size-1 с шагом 1
// Проверка единственного экземпляра в массиве А
ЕСЛИ ((A[i] не равно A[i + 1]) И (A[i] не равно A[i - 1])) , ТО Aflag =ЛОЖЬ;
ИНАЧЕ Aflag = ИСТИНА;
ЕСЛИ (Aflag == ЛОЖЬ),ТО
J-цикл от 0 до size-1 с шагом 1
//Поиск единственного элемента из массива А в массиве В
ЕСЛИ (A[i] = B[j]),ТО Bflag = ИСТИНА;
//Повторение элемента в массиве В
ЕСЛИ (B[j] = B[j + 1]),ТО Cflag = ИСТИНА;
//Если (2) и (3) истина, то заносим значение в массив С
ЕСЛИ ((Bflag = ИСТИНА) И (Cflag = ИСТИНА)), ТО
C[element] = A[i];
element++;
Bflag = ЛОЖЬ
Cflag = ЛОЖЬ
ВЫХОД ИЗ ЦИКЛА
ВСЕ-ЕСЛИ
Bflag = ЛОЖЬ
Cflag = ЛОЖЬ
}
}
}
//Проверка последнего элемента в массиве А
ЕСЛИ (A[size - 1] Не равно A[size - 2]), ТО
J-цикл от 0 до size-1 с шагом 1
ЕСЛИ (A[size - 1] = B[j]), ТО Bflag = ИСТИНА
ЕСЛИ (B[j] = B[j + 1]), ТО Cflag = ИСТИНА
ЕСЛИ ((Bflag = true) И (Cflag = ИСТИНА)), ТО
C[element] = A[size - 1]
element++
Bflag = ЛОЖЬ
Cflag = ЛОЖЬ
ВЫХОД ИЗ ЦИКЛА
} ВСЕ-ЕСЛИ ?
Bflag =ЛОЖЬ
Cflag = ЛОЖЬ
} ??
}??
Ilya011 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать программу массивы (C++) - Даны два массива, скопировать эти массивы в 3-й результирующий (размером 10 элементов) так, что Саша1990 Помощь студентам 1 02.02.2015 16:03
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12