Skip to content
Snippets Groups Projects
Commit 5786dc86 authored by Lucas Christesen Ahler's avatar Lucas Christesen Ahler
Browse files

komplex exercise

parent 0350ea2b
No related branches found
No related tags found
No related merge requests found
CC = gcc
CFLAGS = -O -std=gnu11
CFLAGS += -Wall
LDFLAGS = -I.
LDLIBS = -lm
all: out.txt
cat ./$<
out.txt: main
./$< > $@
main: main.o komplex.o
main.o komplex.o: komplex.h
clean:
$(RM) main main.o komplex.o out.txt
\ No newline at end of file
#include"komplex.h"
#include<stdio.h>
void komplex_print(char *s, komplex a) {
printf("%s (%g,%g)\n",s,a.re,a.im);
}
komplex komplex_new(double x, double y) {
komplex z = {x,y};
return z;
}
void komplex_set(komplex* z, double x, double y) {
(*z).re = x;
(*z).im = y;
}
komplex komplex_add (komplex a, komplex b) {
komplex result = { a.re + b.re , a.im + b.im };
return result;
}
\ No newline at end of file
#ifndef HAVE_KOMPLEX_H
#define HAVE_KOMPLEX_H
struct komplex {double re; double im;};
typedef struct komplex komplex;
void komplex_print(char* s, komplex z);
void komplex_set (komplex* z, double x, double y);
komplex komplex_new (double x, double y);
komplex komplex_add (komplex a, komplex b);
komplex komplex_sub (komplex a, komplex b);
#endif
\ No newline at end of file
#include"komplex.h"
#include"stdio.h"
#define TINY 1e-6
int main(){
komplex a = {1,2}, b = {3,4};
printf("testing komplex_add...\n");
komplex r = komplex_add(a,b);
komplex R = {4,6};
komplex_print("a=",a);
komplex_print("b=",b);
komplex_print("a+b should = ", R);
komplex_print("a+b actually = ", r);
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment