#include #include #include "minirechner.h" int run_minirechner() { float zahl1, zahl2, erg; int r_op; printf("Rechenoperationen: \n"); printf("<1> addieren\n<2> subtrahieren\n<3> multiplizieren\n<4> dividieren\n<5> rest\n<6> groesster gemeinsammer Teiler\n<7> kleinstes gemeinsammes Vielfaches\n"); scanf("%d", &r_op); printf("Zahl 1: "); scanf("%f", &zahl1); printf("Zahl 2: "); scanf("%f", &zahl2); switch (r_op) { // Der Rechner gibt die gegebenen Zahlen (im Sinne der Optik) mit einer und das Ergebnis mit zwei Nachkommastellen aus. case 1: erg = addieren(zahl1, zahl2); printf("%.1f + %.1f = %.2f\n", zahl1, zahl2, erg); break; case 2: erg = subtrahieren(zahl1, zahl2); printf("%.1f - %.1f = %.2f\n", zahl1, zahl2, erg); break; case 3: erg = multiplizieren(zahl1, zahl2); printf("%.1f * %.1f = %.2f\n", zahl1, zahl2, erg); break; case 4: erg = dividieren(zahl1, zahl2); if (erg != 0) { printf("%.1f / %.1f = %.2f\n", zahl1, zahl2, erg); } break; case 5: erg = rest(zahl1, zahl2); printf("%.1f / %.1f rest= %.2f\n", zahl1, zahl2, erg); break; case 6: erg = groesster_gemeinsammer_teiler(zahl1, zahl2); printf("%.2f\n", erg); break; case 7: erg = kleinstes_gemeinsammes_vielfaches(zahl1, zahl2); printf("%.2f\n", erg); break; default: printf("Bitte verwenden sie eine der gegebenen Ziffern"); } return 0; } //addieren float addieren(float a, float b) { return a + b; } //subtrahieren float subtrahieren(float a, float b) { return a - b; } //multiplizieren float multiplizieren(float a, float b) { return a * b; } //dividieren float dividieren(float a, float b) { if (b == 0) { printf("Bitte nicht durch 0 dividieren\n"); return 0; } else { return a / b; } } //rest float rest(float a, float b) { return fmod(a, b); } // groesster gemeinsammer Teiler float groesster_gemeinsammer_teiler(float a, float b) { float gross, klein; float rest = 1; if (a > b) { gross = a; klein = b; } else { gross = b; klein = a; } while (rest != 0) { rest = fmod(gross, klein); gross = klein; klein = rest; } return gross; } // kleinstes gemeinsammes Vielfaches float kleinstes_gemeinsammes_vielfaches(float a, float b) { float erg = a * b / groesster_gemeinsammer_teiler(a, b); return erg; }