Rating Finished
This commit is contained in:
parent
1f68e6be58
commit
0fb4a5b117
2 changed files with 83 additions and 7 deletions
|
@ -81,11 +81,6 @@ void movie_year(struct node* head) {
|
|||
|
||||
}
|
||||
|
||||
void movie_rate(struct node* head) {
|
||||
printf("stub\n");
|
||||
|
||||
}
|
||||
|
||||
void lang_print(struct csv* data, void* val) {
|
||||
|
||||
for(int i = 0; i < data->numlang; i++) {
|
||||
|
@ -117,3 +112,85 @@ void movie_lang(struct node* head) {
|
|||
printf("\n");
|
||||
|
||||
}
|
||||
|
||||
void check_year(int* data, int* year) {
|
||||
|
||||
if(*data == *year)
|
||||
haschanged = 1;
|
||||
|
||||
//printf("%d, %d\n",*data, *year);
|
||||
|
||||
}
|
||||
|
||||
void find_year(struct csv* data, void* year) {
|
||||
|
||||
void* f = &check_year;
|
||||
|
||||
haschanged = 0;
|
||||
iterate_nodes(year, f, &data->year);
|
||||
|
||||
if(!haschanged) {
|
||||
appendv_node(year, &data->year);
|
||||
//printf("Change Val: %d\n", data->year);
|
||||
}
|
||||
|
||||
haschanged = 0;
|
||||
|
||||
}
|
||||
|
||||
void print_node(int* val, char* garbage) {
|
||||
|
||||
printf("%s\n", garbage);
|
||||
}
|
||||
|
||||
void print_rating(struct csv* data, struct csv** val) {
|
||||
|
||||
if(val[0] == NULL) {
|
||||
if(data->year == haschanged)
|
||||
val[0] = data;
|
||||
return;
|
||||
}
|
||||
|
||||
if(data->rating > val[0]->rating
|
||||
&& data->year == haschanged)
|
||||
val[0] = data;
|
||||
|
||||
}
|
||||
|
||||
void index_nodes(int* val, void* head) {
|
||||
|
||||
haschanged = *val;
|
||||
|
||||
struct csv ** cur_val = malloc(sizeof(struct csv*));
|
||||
cur_val[0] = NULL;
|
||||
|
||||
void* f = &print_rating;
|
||||
|
||||
iterate_nodes(head, f, cur_val);
|
||||
|
||||
printf("%d %2.1f %s\n", cur_val[0]->year, cur_val[0]->rating, cur_val[0]->title);
|
||||
|
||||
haschanged = 0;
|
||||
|
||||
}
|
||||
|
||||
void movie_rate(struct node* head) {
|
||||
|
||||
struct csv* temp = head->data;
|
||||
|
||||
struct node* year = appendv_node(NULL, &temp->year);
|
||||
|
||||
void* f = &find_year;
|
||||
|
||||
// Make a list of every year that has a movie
|
||||
iterate_nodes(head, f, year);
|
||||
|
||||
void* tempish = &index_nodes;
|
||||
|
||||
|
||||
// Iterate though every year and find the highest rating
|
||||
iterate_nodes(year, tempish, head);
|
||||
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,6 @@ void iterate_nodes(struct node* head, void *func (void*, void*), void* val) {
|
|||
if(!head)
|
||||
return;
|
||||
|
||||
if(head->node)
|
||||
func(head->data, val);
|
||||
|
||||
struct node* temp = head;
|
||||
|
|
Loading…
Reference in a new issue