Отредактировать часть кода, под указателя - 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)
Объяснение кода листинга программы
В данном коде происходит обращение к элементу массива по индексу. Список операций:
- (mas + i) - указатель на элемент массива (в данном случае смещен на i элементов вперед от начала массива)
- *(mas + i)** - разыменование указателя на элемент массива
-
- k - прибавление значения k к полученному элементу массива В итоге получаем обращение к элементу массива с индексом i+k.