Упорядочить (переставить) строки матрицы по не возрастанию сумм элементов строк. Задание номер 2 "Сортировка массивов" (см. Сборник задач для начинающего программиста) Алгоритм: -Находим сумму каждой строки и записываем в отдельный массив #include <stdio.h> #include <stdlib.h> #include <conio.h> //Объявляем переменные int ar[50][50], s[50]; int i, j, k; int m, n; int temp; int main() { printf("input size of array MxN \n"); //Размер масива scanf("%d %d", &m, &n); printf ("\n"); for(i=1; i<=m; i++) { //Записываем в основной массив псевдо случайные числа for(j=1; j<=n; j++) ar[i][j]=rand()%10; } for(i=1; i<=m; i++) { //Распечатываем их for(j=1; j<=n; j++) printf(" %2d ", ar[i][j]); printf ("\n"); } for(i=1; i<=m; i++) { //Находим сумму строк for(j=1; j<=n; j++) s[i]=s[i]+ar[i][j]; } printf ("\n"); for(i=1; i<=m; i++) //Распечатываем суммы для проверки что все идет правильно printf(" %2d ", s[i]); printf ("\n"); temp=0; for(i=1; i<=m; i++){ if(i+1<=m) { for(k=1; k<=m; k++){ if(s[k]<s[k+1]) { //Сортируем массив S по не возростанию temp=s[k]; s[k]=s[k+1]; s[k+1]=temp; for(j=1; j<=n; j++) { //Сортируем строки в основном масиве temp=ar[i][j]; ar[i][j]=ar[i+1][j]; ar[i+1][j]=temp; } //В обоих случаях мы использовали сортировку Пузырька } } } } printf ("\n"); for( i=1; i <=m; i++ ){ //Распечатываем получившийся основной массив for( j=1; j<=n; j++) printf("% 2d ", ar[i][j]); printf("\n"); } printf("\n"); //Для проверки распечатываем массив S for(i=1; i<=m; i++) printf(" %2d ", s[i]); getch(); return 0; }
Ключевые слова:
сортировка массива, матрица
|
|||||||