Untitled
unknown
actionscript
3 years ago
2.9 kB
10
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...