• Jump To … +
    array_of_routines.c array_utils.h print.c arrays_and_pointers.c arrays_basics.c command_line.c fibonacci.c hello_world.c hello_world_correct.c linked_list.c malloc_stuff.c nans_and_other_oddities.c rationals_with_structs.c routine_pointers.c experiments.c naive_sequence_of_longs.c naive_sequence_of_longs.h sequence_of_longs.c sequence_of_longs.h tests.c sizeof_and_arrays.c array_of_doubles.c array_of_doubles.h perform_experiments.c sorting_algorithms.c sorting_algorithms.h string_io.c
  • ¶

    rationals_with_structs.c – Racionais com estruturas C

  • ¶
    #include <stdio.h>
    #include <stdlib.h>
    
    struct rational {
    	int numerator;
    	int denominator;
    };
    
    struct rational RAT_symmetric_of(struct rational r)
    {
    	struct rational result = {
    		numerator: -r.numerator,
    		denominator: r.denominator
    	};
    	return result;
    }
    
    void RAT_println(struct rational r)
    {
    	printf("%d/%d\n", r.numerator, r.denominator);
    }
    
    int main(void)
    {
    	struct rational r1 = { numerator: 1, denominator: 2};
    
  • ¶

    rational r2 = -r1;

    	struct rational r2 = RAT_symmetric_of(r1);
    
    	RAT_println(r1);
    	RAT_println(r2);
    
    	return EXIT_SUCCESS;
    }