Example #1
0
std::vector<double> meanItemRating(gk_csr_t *mat) {
  std::vector<double> meanRating(mat->ncols, 0);
  std::vector<int> count(mat->ncols, 0);
  for (int u = 0; u < mat->nrows; u++) {
    for (int ii = mat->rowptr[u]; ii < mat->rowptr[u+1]; ii++) {
      int item = mat->rowind[ii];
      float rating = mat->rowval[ii];
      meanRating[item] += rating;
      count[item]++;
    }
  }
  for (int i = 0; i < mat->ncols; i++) {
    meanRating[i] = meanRating[i]/count[i];
  }
  return meanRating;
}
Example #2
0
int main(int argc, char* argv[]) {

    int test_mode = 0;

    if (argc == 2) {

        if (strcmp(argv[1], "test") == 0) {

            test_mode = 1;

            printf("[start_test]\n");

            test_data();

        }

    }

    else {

        printf("Enter meal names and ratings in the form <name> <rating>.\n");

        printf("No spaces are allowed in the name and the rating.\n");

        printf("The rating can be * through *****.\n");

        printf("To finish, enter \"end\" for a meal name.\n");

        while (names < MAX_NAMES) {

            char name[MAX_NAME_LENGTH];

            char rating[MAX_RATING_LENGTH + 1];

            printf("\nName and rating: ");

            scanf("%s", &name);

            if (strcmp(name, "end") == 0) {

                break;

            }

            scanf("%s", rating);

            addNameAndRating(name, rating);

        }

        printf("\n");

    }

 

    if (names) {

        // Print data entered and call libRatings.addRating().

        printf("This is the data you entered:\n");

        for (int i = 0; i < names; i++) {

            printf("%s (%s)\n", name_list[i], rating_list[i]);

            addRating(rating_list[i]);

        }

 

        // Print statistical information.

        printf("\nThe mean rating is %s\n", meanRating()); // 1

        if (medianRating) {                                // 2

            printf("The median rating is %s\n", medianRating());

        }

        if (frequentRating) {                              // 3

            printf("The most frequent rating is %s\n", frequentRating());

        }

 

        //printf("\n");

    }

 

    if (test_mode) {

        printf("[end_test]\n");

    }

    return 0;

}