Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.84.155] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте,нужна помощь в написании кода.Заранее спасибо
Вот само задание: Дана целочисленная матрица размером MxN. Пусть для каждой строки матрицы определена функция f(a), равная количеству четных чисел среди элементов строки a. Упорядочить (переставить) строки матрицы по невозрастанию в соответствии со следующим критерием: строка a считается "больше" строки b, если f(a) > f(b). Используйте алгоритм сортировки вставками. |
Сообщ.
#2
,
|
|
|
Схема, например, такая:
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения. // TABSIZE=4 #include "stdafx.h" #include <stdlib.h> #define M 5 #define N 8 int A[M][N]={{ 2, 0, 3, 6,-2, 9, 1, 1}, //4 { 1, 2, 2, 2, 5,19,11,16}, //4 { 4, 10, 3,16,-2, 9,-5, 8}, //5 { 3, 20, 31,61,-2, 9,-1,11}, //2 {34,412,-32,62,-2, 3,21,12}}; //6 int f( const int *a) { int чётных=0; for( int i=0; i<N; i++) if( !(a[i]&1) ) чётных++; return чётных; } int sort_f( const void *a, const void *b) { return f((int*)a) - f((int*)b); } int main() { qsort( &A[0][0], M, sizeof(int)*N, sort_f); // быстрая. Заменить на сортировку вставками return 0; } |