Завтра надо сдавать, хочу быть уверенной, что сделала все правильно.
Задание:
Дана матрица А (10х10). Отсортировать элементы, лежащие на главной диагонали, в порядке возрастания. Память выделять динамически.
код:
#include
#include
int main()
{
system ("chcp 1251 > nul");
int *p;
int tmp, n, m;
printf ("Введите кол - во строк: \n");
scanf ("%d", &n);
printf ("Введите кол - во столбцов: \n");
scanf ("%d", &m);
p = (int*)malloc(n*m*sizeof(int));
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
scanf("%d", (p+i*m+j));
for(int j = 0; j < n - 1; j++)
for(int i = j + 1; i < n; i++)
if(*(p+i*m+i) < *(p+i*m+i))
{
tmp = *(p+i*m+i);
*(p+i*m+i) = *(p+j*m+j);
*(p+j*m+j) = tmp;
}
for(int j = 0; j < n; j++)
{
putchar('\n');
for(int i = 0; i < n; i++)
printf("%3d", *(p+i*m+j));
printf("\n");
}
free(p);
system ("PAUSE>nul");
return 0;
}
Задание:
Дана матрица А (10х10). Отсортировать элементы, лежащие на главной диагонали, в порядке возрастания. Память выделять динамически.
код:
#include
#include
int main()
{
system ("chcp 1251 > nul");
int *p;
int tmp, n, m;
printf ("Введите кол - во строк: \n");
scanf ("%d", &n);
printf ("Введите кол - во столбцов: \n");
scanf ("%d", &m);
p = (int*)malloc(n*m*sizeof(int));
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
scanf("%d", (p+i*m+j));
for(int j = 0; j < n - 1; j++)
for(int i = j + 1; i < n; i++)
if(*(p+i*m+i) < *(p+i*m+i))
{
tmp = *(p+i*m+i);
*(p+i*m+i) = *(p+j*m+j);
*(p+j*m+j) = tmp;
}
for(int j = 0; j < n; j++)
{
putchar('\n');
for(int i = 0; i < n; i++)
printf("%3d", *(p+i*m+j));
printf("\n");
}
free(p);
system ("PAUSE>nul");
return 0;
}