69 lines
1.8 KiB
C
69 lines
1.8 KiB
C
/**************************************************************************
|
|
??/???????????????????????????????
|
|
1. ???????????????????????????????
|
|
2. ??????????????????????
|
|
3. ??rc_fun_rec rc_fun_tab??????????????????
|
|
???????????????????????????????????????????
|
|
***************************************************************************/
|
|
|
|
/*
|
|
????201209054233
|
|
??????????????
|
|
*/
|
|
|
|
#include "rowcol.h"
|
|
#include <math.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
/* ????????????????? */
|
|
/* ???????????????????????????????????????????????
|
|
??????????2?????????????????
|
|
*/
|
|
|
|
void c_sum(matrix_t M, vector_t rowsum, vector_t colsum) {
|
|
int i, j;
|
|
for (j = 0; j < N; j++) {
|
|
colsum[j] = 0;
|
|
for (i = 0; i < N; i++)
|
|
colsum[j] += M[i][j];
|
|
}
|
|
}
|
|
|
|
/* ???????????????????? */
|
|
/* ??????????????????????? */
|
|
|
|
void rc_sum(matrix_t M, vector_t rowsum, vector_t colsum) {
|
|
int i, j;
|
|
for (i = 0; i < N; i++) {
|
|
rowsum[i] = colsum[i] = 0;
|
|
for (j = 0; j < N; j++) {
|
|
rowsum[i] += M[i][j];
|
|
colsum[i] += M[j][i];
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
????????????????????????????????????????, COL/ROWCOL, "?????????"??
|
|
COL??????????????????????
|
|
ROWCOL???????????????????????
|
|
?????????????????????????????
|
|
????
|
|
{my_c_sum1, "?????????????????"},
|
|
{my_rc_sum2, "??????????????????"},
|
|
*/
|
|
|
|
rc_fun_rec rc_fun_tab[] = {
|
|
|
|
/* ???????????????????????????????? */
|
|
{c_sum, COL, "Best column sum"},
|
|
/* ?????????????????????????????????? */
|
|
{rc_sum, ROWCOL, "Best row and column sum"},
|
|
|
|
{c_sum, COL, "Column sum, reference implementation"},
|
|
|
|
{rc_sum, ROWCOL, "Row and column sum, reference implementation"},
|
|
|
|
/* ??????????????????????????????????????? */
|
|
{NULL, ROWCOL, NULL}}; |