Упорядочить матрицу ее строки по неубыванию наибольших элементов строк - C (СИ)
Формулировка задачи:
Написал программу, не могу понять почему она не выводит то, что нужно, помоги пожалуйста кто может!
пример работы:
если исходная матрица такая:
5 3 4
3 1 2
4 3 8
на выходе должно получиться вот так:
3 1 2
5 3 4
4 3 8
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> int main(void) { int i,j,n,m,t,max,p; printf("Enter Size(n,m): "); scanf("%i %i", &n,&m); int (*Mas)[n][m] = (int (*)[n][m])malloc(100); int (*Vector)[n] = (int (*)[n])malloc(100); srand (time (NULL)); for (i=0; i<n; i++) { for (j=0; j<m; j++) { *Mas[i][j]=(rand()%10); printf("%2i",*Mas[i][j]); } printf("\n"); } for(i=0; i<n; i++) { max=*Mas[i][1]; for(j=1; j<m; j++); if(*Mas[i][j]>max) { max= *Mas[i][j]; } *Vectori]=max; } for(i=1; i<n; i++) for(j=n; j>0; j--) { if(*Vector[j-1]> *Vector[j]) { t= *Vector[j-1]; *Vector[j-1]= *Vector[j]; *Vector[j]=t; for (p=0; p<m; p++) { t= *Mas[j-1][p]; *Mas[j-1][p]= *Mas[j][p]; *Mas[j][p]=t; } } } printf("New Massiv\n"); for(i=0; i<n; i++) { for(j=0; j<m; j++) { printf("%2i",*Mas[i][j]); } printf("\n"); } free(Mas); }
Решение задачи: «Упорядочить матрицу ее строки по неубыванию наибольших элементов строк»
textual
Листинг программы
for(i=0; i<n; i++) { max=*Mas[i][0]; for(j=1; j<m; j++);// последнюю ; убирайте if(*Mas[i][j]>max) { max= *Mas[i][j]; } *Vector[i]=max;
Объяснение кода листинга программы
- Объявляется цикл for для перебора строк матрицы.
- В каждой итерации цикла инициализируется переменная max значением первого элемента текущей строки матрицы.
- В каждой итерации цикла (начиная со второй) сравнивается каждый элемент текущей строки с текущим максимальным значением. Если текущий элемент больше max, то он становится новым max.
- В каждой итерации цикла (начиная со второй) значение max присваивается соответствующему элементу вектора.
- Код в блоке if от найденного максима в текущей строке не выполняется (возможно, это какая-то ошибка в коде, потому что блок if никогда не выполняется).
- Код в цикле завершается, и управление передается следующему оператору или конструкции в коде.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д