Untitled

 avatar
unknown
actionscript
3 years ago
2.9 kB
5
Indexable
#include <stdio.h>
#include <stdlib.h>

typedef struct {
    unsigned int taeller;
    unsigned int naevner;
}fraction;

unsigned int gcd(unsigned int large, unsigned int small);
fraction forkort(fraction broek, unsigned int tal);
int forkort_udregning (fraction broek);
int udskriv(fraction broek);
int multiply(fraction broek);
fraction skriv_broek(fraction broek2);
int multiply2(fraction broek);
int add(fraction broek);

int main(void)
{
    fraction broek;
    int udregning;

    printf("skriv en broeker ind: ");
    scanf("%u/%u", &broek.taeller, &broek.naevner);

    printf("Hvilken udregning vil du lave?\n"
           "1: Forkort\n"
           "2: Udskriv\n"
           "3: Multiplicer\n"
           "4: Multiplicer med to broeker\n"
           "5: Adderer to broeker\n");

    scanf("%d", &udregning);

    switch (udregning){
        case 1:
            forkort_udregning(broek);
            break;
        case 2:
            udskriv(broek);
            break;
        case 3:
            multiply(broek);
            break;
        case 4:
            multiply2(broek);
            break;
        case 5:
            add(broek);
            break;
    }

    return 0;
}

unsigned int gcd(unsigned int large, unsigned int small){
    unsigned int remainder;
    while (small > 0){
        remainder = large % small;
        large = small;
        small = remainder;
    }
    return large;
}

fraction forkort(fraction broek, unsigned int tal){

    broek.taeller = broek.taeller / tal;
    broek.naevner = broek.naevner / tal;
    return broek;
}

int forkort_udregning (fraction broek){

    unsigned int tal;

    tal = gcd(broek.taeller, broek.naevner);

    broek = forkort(broek, tal);

    udskriv(broek);
    return 0;
}

int udskriv(fraction broek){

    printf("%u/%u", broek.taeller, broek.naevner);

    return 0;

}
int multiply(fraction broek){

    int t;
    unsigned int tal;

    printf("skriv et heltal ind: ");
    scanf("%d", &t);

    broek.taeller = (broek.taeller * t);

    forkort_udregning(broek);

    return 0;
}

fraction skriv_broek(fraction broek2){
    printf("skriv endnu en broeker ind: ");
    scanf("%u/%u", &broek2.taeller, &broek2.naevner);

    return broek2;
}

int multiply2(fraction broek){

    fraction broek2;
    broek2 = skriv_broek(broek2);

    broek.taeller = broek.taeller * broek2.taeller;
    broek.naevner = broek.naevner * broek2.naevner;

    forkort_udregning(broek);

    return 0;
}

int add(fraction broek){

    fraction broek2;
    broek2 = skriv_broek(broek2);

    broek.taeller = (broek.taeller * broek2.naevner) + (broek2.taeller * broek.naevner);
    broek.naevner = broek.naevner * broek2.naevner;

    forkort_udregning(broek);


    return 0;
}

//den sidste er forkert :(
Editor is loading...