Сначала return (a,b);
просто возвращает b
; в ваших compareFaithPrecursorScores
и compareFaithCassandraScores
вы, вероятно, захотите заменить ,
на -
. Теперь у вас есть только конфессий , выделенных в вашей основной записи, поэтому в последней вы должны отсортировать те же FaithStat
той же длины, что и раньше: MAX_FAITH_COUNT
, а не MAX_FAITH_COUNT * PROPHET_COUNT
.
Теперь в вашем cannotFigureOut
вы просто сравниваете два faithStats, как и раньше, так что подпись все та же:
int cannotFigureOut(faithStat *faithA, faithStat *faithB){
.... }
(правка :) хорошо, поэтому (после ваших разъяснений) это не называется кумулятивным , это вводит в заблуждение. Вы имели в виду Итого Оценка. Кажется, что ваше последнее добавление говорит о том, что вы хотите отсортировать другой массив в целом, на этот раз из 9000 пророков (а не 600 вер). Оценка каждого пророка будет суммой его оценок по всем конфессиям; просто создайте функцию для заполнения массива пророков после его создания, а затем сортируйте как обычно.
Вы можете использовать ту же структуру prophetStat
для хранения общего количества баллов на этот раз, а не значений для каждой веры, так что подпись будет
int cannotFigureOut(prophetStat *prophetA, prophetStat *prophetB){
.... }