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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2021, 07:11   #1
Myrov
Новичок
Джуниор
 
Регистрация: 29.12.2021
Сообщений: 2
По умолчанию Работа с двумерными массивами C++

для вводимого с клавиатуры массива из 7 строк и 5 столбцов нужно
1)вычислить сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент
2) найти номер первой из строк, содержащих хотя бы один положительный элемент
ниже привожу свой код. из проблем, которые заметил при выполнении программы:
1) если вводить в строке все числа отрицательные, то сумма получается неправильная
2) при переборе строк и проверке элементов на положительность, останавливается на первой строке и выводит ее как ответ на второй подпункт задания.
не могу решить эти проблемы, уже все перепробовал. может подскажете вы
Код:
#include <iostream>

using namespace std;

const int nRow = 7, nCol = 5;// 7 строк 5 столбцов

int main ()
{
    int i,j,k=0,n=0;
    float sum = 0;
    float mas[nRow] [nCol] = {0};
    
    for (i = 0; i < nRow; i++) // ввод массива
    {
        for (j = 0; j < nCol; j++)
        {
            cout << "a[" << i << "] [" << j << "] = ";
            cin >> mas[i] [j];
        }
        cout <<"----------\n";
    }
    for (i = 0; i< nRow; i++) // вывод массива
    {
        for (j = 0;j < nCol; j++)
        cout << mas[i] [j] << '\t';
        cout << '\n';
    }
    //сумма элементов в строках, содержащих хотя бы один отрицательный элемент

for(int i = 0; i < nRow; ++i){
  sum = 0;
  for(int j = 0; j < nCol; ++j)
  if (mas[i][j]<0)
  {
       for(int j=0;j<nCol;j++)
    sum += mas[i][j];
  }
  cout << sum << '\n';
}
cout <<"----------\n";
// номер первой из строк, содержащих хотя бы один положительный элемент 

for (int i=0;i<nRow;i++)
{
    k=0;
    for (int j=0; j< nCol;j++)
    if (mas[i][j]>0)
    {
        k++;
    }   
    if (k>0)
    {
        n=i;
        break;
    }
}
    
        cout <<" Stroka"<< n;
    

return 0;
    }
Myrov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Работа с двумерными массивами yelab Фриланс 1 12.05.2019 13:42
работа с двумерными массивами arai uzbekova Паскаль, Turbo Pascal, PascalABC.NET 1 14.03.2013 21:13
работа с двумерными массивами Lellya Помощь студентам 0 10.04.2011 23:11
работа с двумерными массивами curly182 Паскаль, Turbo Pascal, PascalABC.NET 1 16.05.2009 17:56
Работа с двумерными массивами KJIOyH Помощь студентам 4 03.11.2007 20:03