diff --git a/du2/program.c b/du2/program.c index a735c23..5c13cd7 100644 --- a/du2/program.c +++ b/du2/program.c @@ -18,31 +18,69 @@ void bubbleSort(int arr[], int n){ } int main() { - char** glass = (char**) calloc (50, sizeof(char)); - - int numbers[50]; - int counter = 0; - int max_number = 0; - int max_position = 1; + char glass[500]; + char divided[10]; + memset(divided, '\0', 10); + int counter = 0, counter2 = 0; + int final_count = 0; + int numbers[50]; + int max_number = 0; + int max_positions[50]; + int repeats = 1; + int user = 1; + + + fgets(glass, 500, stdin); + + for (int i = 0; i < 500; i++){ + if(!isdigit(glass[i]) && glass[i] != ' ' && glass[i] != '\n') { + final_count = i; + break; + } + + if(glass[i] != ' ' && glass[i] != '\n'){ + divided[counter++] = glass[i]; + } + else { + if (glass[i-1] == ' ' && glass[i] == ' ') continue; + if(atoi(divided) < 1){ + final_count = i; + break; + } + numbers[counter2++] = atoi(divided); + if (i == 0){ + max_number = numbers[counter2-1]; + } + else if (max_number < numbers[counter2-1]){ + max_number = numbers[counter2-1]; + repeats = 1; + max_positions[repeats-1] = user; + //max_position = i+1; + } + else if (max_number == numbers [counter2-1]){ + repeats++; + max_positions[repeats-1] = user; + } + + printf("Súťažiaci č. %d vypil %d pohárov.\n",user,numbers[counter2-1]); + //max_position = i+1; + counter = 0; + memset(divided, '\0', 10); + user++; + } + + final_count = i; + if(glass[i] == '\n'){ + break; + } + } + + if (final_count == 0) + printf("Chyba: Málo platných hodnôt.\n"); + else { + for(int i = 0; i < repeats; i++) + printf("Výherca je súťažiaci %d ktorý vypil %d pohárov.\n",max_positions[i],max_number); + } - for (int i = 0; fgets(glass[i], 20, stdin) != NULL; i++){ - for (int j = 0; j < strlen(glass[i]; j++)){ - if (!isdigit(glass[i][j]) || atoi (glass[i]) < 1){ - goto LABEL; - } - } - numbers[counter++] = atoi(glass[i]); - if (i == 0) - max_number = numbers[counter-1]; - else if(numbers[counter-1] > max_number){ - max_number = numbers[counter-1]; - printf("Súťažiaci č. %d vypil %d pohárov.\n",max_position,max_number); - } - } - LABEL: - - bubbleSort(numbers, sizeof(numbers)/sizeof(numbers[0])); - - printf ("Výherca je súťažiaci %d ktorý vypil %d pohárov.\n",max_position,numbers[counter-1]); return 0; -} +} \ No newline at end of file