From 707c06c1bb85a285e5d18c34f4e8d06503e4ce2c Mon Sep 17 00:00:00 2001 From: kr820js Date: Sat, 16 Mar 2024 20:50:43 +0100 Subject: [PATCH] submit5 --- cv5/program.c | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/cv5/program.c b/cv5/program.c index a7a3ae0..8024e66 100644 --- a/cv5/program.c +++ b/cv5/program.c @@ -10,11 +10,11 @@ struct student { }; int compar(const void*,const void*); int loading_the_entire_line_from_standard_input_into_the_helper_field_and_verify_that_i_have_loaded_it_correctly(struct student *databaza,int *size_ptr); -void parce_line_and_save_into_database(char line[],struct student *databaza, int *size_ptr); -int retriving_integer(char *line,char** end); +int parce_line_and_save_into_database(char line[],struct student *databaza, int *size_ptr); int find_index(struct student databaza[],int size, const char *xxx); void adding_an_item_to_the_database(struct student databaza[],int *size_ptr, const char* name,int score); + int main() { struct student databaza[SIZE]; @@ -41,36 +41,30 @@ int loading_the_entire_line_from_standard_input_into_the_helper_field_and_verify if (r == NULL||strlen(r)==1){ return 0; } - parce_line_and_save_into_database(line,databaza,size_ptr); + if(parce_line_and_save_into_database(line,databaza,size_ptr)==-1){ + return 0; + } return 1; } -void parce_line_and_save_into_database(char line[],struct student *databaza, int *size_ptr){ +int parce_line_and_save_into_database(char line[],struct student *databaza, int *size_ptr){ char* end = NULL; - int score=retriving_integer(line,&end); + int score=strtol(line,&end,10); if(score==0){ - return; + return -1; } char name[SIZE]; memset(name,0,SIZE); end += 1; int velkost_mena = strlen(end) - 1; - if (velkost_mena > 0){ - memcpy(name,end,velkost_mena); - } - else { - return; + + if (velkost_mena == 0){ + return -1; } + memcpy(name,end,velkost_mena); + adding_an_item_to_the_database( databaza, size_ptr, name, score); } -int retriving_integer(char *line,char** end){ - - int value = strtol(line,end,10); - if (value == 0){ - return 0; - } - return value; -} int find_index(struct student databaza[],int size, const char *xxx){ for(int i=0; iscore < b_ptr->score) { return 1; } - if(a_ptr->score > b_ptr->score) { + if(b_ptr->score > a_ptr->score) { return -1; } - if(a_ptr->score == b_ptr->score){ - return strcmp(a_ptr->name, b_ptr->name); - } + + return strcmp(a_ptr->name, b_ptr->name); }