miyago icon

Kattis

miyago | PRO | 03/31/20 01:50:39 PM UTC | 0 ⭐ | 390 👁️ | Never ⏰ | []
C |

2.16 KB

|

None

|

0 👍

/

0 👎

#define _GNU_SOURCE     // Behövs när man använder getline i C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
 
void sortArray(int* array, int size);
void swap(int* first, int* second);
 
int main(int argc, char *argv[])
{
 
    int n = 0;
    int i = 0;
    char* line = NULL;
    size_t length = 90;
    size_t characters = 0;
    int numbers[21];
    char number[4];
    int j = 0;
    
    int Kattis = 0;
    int KattisKitten = 0;
 
    do {
        characters = getline(&line, &length, stdin);
        printf("String: %s length: %zu\n", line, characters);
 
        while(*line) {
            number[i] = *line;
            if(*line == ' ' && (*line+1)) {
                numbers[j++] = atoi(number);
                i = 0;
            } else {
                i++;
            }
            
            printf("Char: [%c] Pos: [%d]\n", *line, i);
            *line++;
        }
        numbers[j++] = atoi(number);
        sortArray(numbers, j);
 
        for(int ik = 0; ik < j;ik++){
            printf("#%d: %d\n", ik, numbers[ik]);
            if(Kattis <= KattisKitten){
                Kattis += numbers[ik];
            } else {
                KattisKitten += numbers[ik];
            }
        }
        printf("Weight of Kattie backpack: %d\n", Kattis);
        printf("Weight of the Kitten's backpack: %d", KattisKitten);
 
        n++;
    } while(n <= 20 && line[0] != '0');
 
    for(int i = 0; i<n; i++) {
        
    }
 
    printf("done!");
 
    return 0;
}
 
/**
 * @brief Sorts a int array descending order
 * @details Uses selective sort algorithm
 * @param array The array of integer to be sorted
 * @param size The number of elements in the array
 */
void sortArray(int* array, int size)
{
    for(int i = 0; i<size-1; i++) {
        int jmin = i;
        for(int j=i+1; j<size; j++) {
            if(array[j] > array[jmin]) {
                jmin = j;
            }
 
        }
        if(jmin != i) {
            swap(&array[i], &array[jmin]);
        }
    }
}
 
void swap(int* first, int* second)
{
    int temp = *first;
    *first = *second;
    *second = temp;
    
}

Comments