Вывести строки массива по убыванию максимальных элементов строк массива - C (СИ)
Формулировка задачи:
C дан массив А [7.7] вывести строки массива по убыванию максимальных элементов строк массива . Программу и блок схему подалуйста
Решение задачи: «Вывести строки массива по убыванию максимальных элементов строк массива»
textual
Листинг программы
#include <stdio.h> #define N 7 int MaxInRow(int (*a)[N],int row) { int i,maxx; maxx=a[row][0]; for(i=1; i<N; i++) { if(a[row][i]>maxx) maxx=a[row][i]; } return maxx; } void sort_arr(int (*a)[2]) { int i,j,buf; for(i=0; i<N; i++) { for(j=i; j<N; j++) { if( a[i][1] > a[j][1] ) { buf=a[j][1]; //value a[j][1]=a[i][1]; a[i][1]=buf; buf=a[j][0]; //index a[j][0]= a[i][0]; a[i][0]=buf; } } } } int main() { int arr[N][N]= { {1,2,3,4,5,6,7}, //max 7 {8,9,10,-2,0,1}, //max 10 {9,4,6,2,4,-3,0}, //max 9 {0,-4,5,6,7,8,11}, //max 11 {-5,6,7,12,9,10,11}, //max 12 {3,5,0,4,1,5,8}, //max 8 {3,5,6,0,0,4,5} }; //max 6 int max_row[N][2]; int i,j; for(i=0; i<N; i++) { max_row[i][0]=i; max_row[i][1]=MaxInRow(arr,i); //нашли максимумы в каждой строке и записали в массив // в массиве две колонки Индекс строки и Максимум строки } sort_arr(max_row); // отсортировали массив //вывод for(i=0; i<N; i++) { printf("Row index: %2d |\t",max_row[i][0]); for(j=0; j<N; j++) { printf("%4d",arr[max_row[i][0]][j]); // индекс строки из отсортированного массива } printf("\n"); } return 0; }
Объяснение кода листинга программы
В этом коде реализованы две функции:
- *MaxInRow(int (a)[N],int row)** - эта функция находит максимальное значение в строке массива. Ввод: массив a и номер строки row. Вывод: максимальное значение в строке.
- *sort_arr(int (a)[2])** - эта функция сортирует массив a по убыванию максимальных значений строк. Ввод: массив a. Вывод: отсортированный массив. В функции main создается массив arr, заполненный данными. Затем создается массив max_row, в котором будут храниться индекс строки и максимальное значение строки. Затем в цикле для каждой строки массива arr вызывается функция MaxInRow, чтобы найти максимальное значение строки, и это значение записывается в соответствующий элемент массива max_row. После этого вызывается функция sort_arr, чтобы отсортировать массив max_row по убыванию максимальных значений строк. Наконец, в цикле по всем строкам массива max_row выводится на экран индекс строки и все значения этой строки из массива arr. Таким образом, данный код выводит строки массива по убыванию максимальных элементов строк.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д