Die Aufgabenstellung finden Sie hier
// Programm für Linux! benutzt ANSI Escape Sequenzen. // Jede Konsole, die sich an den POSIX-Standard hält kann den Kreis "ordentlich" anzeigen. #include <stdio.h> #include <stdlib.h> #include <math.h> // SKALIERUNG DES EINHEITSKREISES!!!! #define RADIUS 10 int main () { // x*x + y*y = r*r // <=> y=sqrt(r*r-x*x) // clear screen printf ("\x1B[2J"); for (double x=0; x<=RADIUS; x++) { double y=sqrt ( (RADIUS*RADIUS) - (x*x) ); printf ("\x1B[%i;%iH", (int) y+11, (int) x+11); putchar ('+'); printf ("\x1B[%i;%iH", (int) -y+11, (int) x+11); putchar ('+'); printf ("\x1B[%i;%iH", (int) -y+11, (int) -x+11); putchar ('+'); printf ("\x1B[%i;%iH", (int) y+11, (int) -x+11); putchar ('+'); } for (double y=0; y<=RADIUS; y++) { double x=sqrt ( (RADIUS*RADIUS) - (y*y) ); printf ("\x1B[%i;%iH", (int) y+11, (int) x+11); putchar ('+'); printf ("\x1B[%i;%iH", (int) -y+11, (int) x+11); putchar ('+'); printf ("\x1B[%i;%iH", (int) -y+11, (int) -x+11); putchar ('+'); printf ("\x1B[%i;%iH", (int) y+11, (int) -x+11); putchar ('+'); } printf ("\x1B[%i;%iH", (int) RADIUS*2+2, (int) 0); return 0; }
Übersetzung mit (-lm um die Mathebibliothek ins Programm zu linken):
gcc circle.c -lm