Проверить, есть ли в матрице хотя бы одна строка, содержащая положительный элемент

tanagra

Написала код по условию "Проверить, есть ли в матрице хотя бы одна строка, содержащая положительный элемент, и найти ее номер. Знаки элементов предыдущей строки изменить на противоположные"
#include <stdio.h>
const int M=2,N=3; 
void main()
{
  int i,j,Mas[M][N];
    for(i=0;i<M;i++)  //ввод элементов матрицы
    {
        for(j=0;j<N;j++)
        {
            printf("[%d][%d]=",i,j);
            scanf("%d",&Mas[i][j]);
        }
    }
        for(i=0;i<M;i++)  //вывод в виде матрицы
    {
        for(j=0;j<N;j++)
        {
            printf("%d\t",Mas[i][j]);  
        }
        printf("\n\n");
    }
  for(i=0;i<M;i++)
      for(j=0;j<N;j++)
            if(Mas[i][j]>0)
            printf("Mas[%d]\n",i);
        for(i=0;i<M;i++)            // цикл вывода на печать матрицы
                {
                        for(j=0;j<N;j++)
                        {  
          Mas[i][j]=(-1)*Mas[i][j]; 
                        printf("%d\t",Mas[i][j]);
                        }
                printf("\n");
                  }   
}
Не получается часть, где нужно заменить знаки в предыдущей строке.
5 ответов

tanagra

ну понаписывала На какой ЯП нужно решить? Си или С++ ?


tanagra

на сина си)


tanagra

на си
Эх...писанины на Си много


tanagra

int i = 0,
    j = 0;
 
while ( (Mas[i][j] <= 0) || (i++)<M)
    {
        while ( (Mas[i][j] <= 0) || (j++)<N);
    }
if (Mas[i][j] > 0) {
    printf("Найден положительный элемент в строке %d\n",i);
    if (i > 0) {
        for (j = 0; j < N;  j++) {
            Mas[i-1][j] *= -1;
        }
    }
}
должно быть примерно так


tanagra

чёто не могу склеить до конца.