miyago

Kattis

Mar 31st, 2020
418
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.16 KB | None | 0 0
  1. #define _GNU_SOURCE     // Behövs när man använder getline i C
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6.  
  7. void sortArray(int* array, int size);
  8. void swap(int* first, int* second);
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12.  
  13.     int n = 0;
  14.     int i = 0;
  15.     char* line = NULL;
  16.     size_t length = 90;
  17.     size_t characters = 0;
  18.     int numbers[21];
  19.     char number[4];
  20.     int j = 0;
  21.    
  22.     int Kattis = 0;
  23.     int KattisKitten = 0;
  24.  
  25.     do {
  26.         characters = getline(&line, &length, stdin);
  27.         printf("String: %s length: %zu\n", line, characters);
  28.  
  29.         while(*line) {
  30.             number[i] = *line;
  31.             if(*line == ' ' && (*line+1)) {
  32.                 numbers[j++] = atoi(number);
  33.                 i = 0;
  34.             } else {
  35.                 i++;
  36.             }
  37.            
  38.             printf("Char: [%c] Pos: [%d]\n", *line, i);
  39.             *line++;
  40.         }
  41.         numbers[j++] = atoi(number);
  42.         sortArray(numbers, j);
  43.  
  44.         for(int ik = 0; ik < j;ik++){
  45.             printf("#%d: %d\n", ik, numbers[ik]);
  46.             if(Kattis <= KattisKitten){
  47.                 Kattis += numbers[ik];
  48.             } else {
  49.                 KattisKitten += numbers[ik];
  50.             }
  51.         }
  52.         printf("Weight of Kattie backpack: %d\n", Kattis);
  53.         printf("Weight of the Kitten's backpack: %d", KattisKitten);
  54.  
  55.         n++;
  56.     } while(n <= 20 && line[0] != '0');
  57.  
  58.     for(int i = 0; i<n; i++) {
  59.        
  60.     }
  61.  
  62.     printf("done!");
  63.  
  64.     return 0;
  65. }
  66.  
  67. /**
  68.  * @brief Sorts a int array descending order
  69.  * @details Uses selective sort algorithm
  70.  * @param array The array of integer to be sorted
  71.  * @param size The number of elements in the array
  72.  */
  73. void sortArray(int* array, int size)
  74. {
  75.     for(int i = 0; i<size-1; i++) {
  76.         int jmin = i;
  77.         for(int j=i+1; j<size; j++) {
  78.             if(array[j] > array[jmin]) {
  79.                 jmin = j;
  80.             }
  81.  
  82.         }
  83.         if(jmin != i) {
  84.             swap(&array[i], &array[jmin]);
  85.         }
  86.     }
  87. }
  88.  
  89. void swap(int* first, int* second)
  90. {
  91.     int temp = *first;
  92.     *first = *second;
  93.     *second = temp;
  94.    
  95. }
Advertisement
Add Comment
Please, Sign In to add comment