Отредактировать часть кода, под указателя - C (СИ)

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

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

Всем привет! Надо сделать программу с указателями, и нужно отредактировать эту часть
      for(i=0;i<n;i++)  
        {for(j=0;j<m;j++) 
          {for(k=m-1;k>j;k--)
            if (mas[i][k]<mas[i][k-1])    
            { buf=mas[i][k];
              mas[i][k]=mas[i][k-1];    
              mas[i][k-1]=buf;
            }
           printf("%2d",mas[i][j]);
          }
           printf("\n");  
        }
Полный код программы
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
      setlocale(LC_ALL,"rus"); 
      srand(time(0));
      int n,m; 
      printf("Ââåäèòå Г°Г*çìåð Г¬Г*òðèöû n=");   scanf("%d",&n); 
      printf("Ââåäèòå Г°Г*çìåð Г¬Г*òðèöû m=");   scanf("%d",&m);
      int i,k,j,mas[n][m],sum=0,buf,a=0,s;
      int *pm=&mas[0][0];
      for(i=0;i<n*m;i++)                 
      {*pm=rand()%5-2; pm++;}
      printf("\nÑãåГ*èðèðîâГ*Г*Г*ûé matrix:");  
      pm=&mas[0][0];
      for(i=0;i<n;i++)
      {     printf("\n");
            for(j=0;j<m;j++)
      {     printf("%2d",*pm);
            pm++;}}
      printf("\n\n===========> a) Г*óëåâîé ýëåìåГ*ГІ: <===========\n"); 
      pm=&mas[0][0]; 
      for(i=0;i<m;i++)
        {   if(*pm==0)
            {s=i;a=1;break;}
            else
            {a=0;}
            pm+=m;
        }
      if(a == 1) {printf("\nÏåðâûé ñòîëáåö èìååò Г*óëåâîé ýëåìåГ*ГІ\nГ€Г*äåêñ: a[%d][0]\n",s+1);}
      else       {printf("\nÑòîëáöîâ Г± ýëåìåГ*ГІГ*ìè Г°Г*ГўГ*ûìè Г*óëþ Г*ГҐГІ!!!\n");}
      printf("\n===========> ГЎ.1) ÑóììГ*: <===========\n");
      pm=&mas[0][0];
      for(i=0;i<=n;i++)
      {  for(j=0;j<=n;j++)
         {if((*pm<0) && (*pm%2==0))
         {sum+=*pm;}
         pm++;}
      }
      printf("\nÑóììГ* îòðèöГ*òåëüГ*ûõ ГЁ Г·ГҐГІГ*ûõ Г·ГЁГ±ГҐГ« Г°Г*ГўГ*Г®= %d\n",sum);
      printf("\n===========> ГЎ.2) ÑîðòèðîâêГ*: <===========\n\n"); 
      for(i=0;i<n;i++)  
        {for(j=0;j<m;j++) 
          {for(k=m-1;k>j;k--)
            if (mas[i][k]<mas[i][k-1])    
            { buf=mas[i][k];
              mas[i][k]=mas[i][k-1];    
              mas[i][k-1]=buf;
            }
           printf("%2d",mas[i][j]);
          }
           printf("\n");  
        } 
      printf("\n");
      system("pause");
      return 0;
}
Помогите пожалуйста эту часть только, это сортировка по строку матрицы
      for(i=0;i<n;i++)  
        {for(j=0;j<m;j++) 
          {for(k=m-1;k>j;k--)
            if (mas[i][k]<mas[i][k-1])    
            { buf=mas[i][k];
              mas[i][k]=mas[i][k-1];    
              mas[i][k-1]=buf;
            }
           printf("%2d",mas[i][j]);
          }
           printf("\n");  
        }

Решение задачи: «Отредактировать часть кода, под указателя»

textual
Листинг программы
*(*(mas + i) + k)

Объяснение кода листинга программы

В данном коде происходит обращение к элементу массива по индексу. Список операций:

  1. (mas + i) - указатель на элемент массива (в данном случае смещен на i элементов вперед от начала массива)
  2. *(mas + i)** - разыменование указателя на элемент массива
    • k - прибавление значения k к полученному элементу массива В итоге получаем обращение к элементу массива с индексом i+k.

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


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

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

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