Поменять местами последние 2 отрицательных элемента в матрице, с помощью указателей - C (СИ)

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

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

Нужно поменять местами последние 2 отрицательных эл-та в матрице,с помощью указателей. Вот что у меня получилось:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
    int a[10][10],n,m,i,j,*o1,*o2,tmp,k=0;
 
    printf("dlina matr a:"); scanf("%d%d",&n,&m);
    printf("vvedite matr a\n");
    for (i=0;i<n;i++)
    for (j=0;j<m;j++)
    scanf("%d",&a[i][j]);
    o1=o2=NULL;
 
    for (i=k;i<n&&o2==NULL;i--)
    for (j=k;j<m&&o2==NULL;j--)
     if (a[i][j]<0)
     {k++;
     if (k==1)
     o1=&a[i][j];
     if (k==2)
     o2=&a[i][j];
    }
    if (o2==NULL)
    printf("net perestanovok");
    else
    {tmp=*o1,*o1=*o2,*o2=tmp;
    printf("matrica A posle perestanovki\n");
    for (i=0;i<n;i++)
    {for (j=0;j<m;j++)
      printf("%7d",a[i][j]);
        printf("\n");
    }
}
 system("PAUSE");
}
Помогите разобраться в чем ошибка

Решение задачи: «Поменять местами последние 2 отрицательных элемента в матрице, с помощью указателей»

textual
Листинг программы
for ( i = n - 1; i >= 0 && o2 == NULL; i--)
    for ( j = m - 1; j >= 0 && o2 == NULL; j--)
       if ( a[i][j] < 0 )....

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


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

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

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