/*Download:aufzgr.c*/
#include <stdio.h> #include <math.h> #define Pi 3.14
static double zahl;
double addition(double zahl) {
double y; printf("%lf+>",zahl); scanf("%lf",&y); fflush(stdin); return zahl+=y; }
double subtraktion(double zahl) {
double y; printf("%lf->",zahl); scanf("%lf",&y); fflush(stdin); return zahl-=y; }
double division(double zahl) {
double y; printf("%lf/>",zahl); scanf("%lf",&y); fflush(stdin); return zahl/=y; }
double multiplikation(double zahl) {
double y; printf("%lf*>",zahl); scanf("%lf",&y); fflush(stdin); return zahl*=y; }
double sqrtw(double zahl) {
double x=sqrt(zahl); printf("(sqrt)%lf>",x); return x; }
double hypotenuse(double zahl) {
double a=zahl; double b,c; printf("Kathete b>"); scanf("%lf",&b); c=(a*a)+(b*b); return zahl=sqrt(c); }
double kugel(double zahl) {
double d=zahl; return zahl=Pi*(d*d*d)/6; }
double (*rechenfunk[])(double) = { addition, subtraktion, division, multiplikation, sqrtw, hypotenuse, kugel };
int main() {
char op;
printf("no.>"); scanf("%lf",&zahl); do {
printf(" op>"); scanf("%c",&op); fflush(stdin); switch(op) {
case '+': printf("%lf",zahl=(*rechenfunk[0])(zahl)); break; case '-': printf("%lf",zahl=(*rechenfunk[1])(zahl)); break; case '/': printf("%lf",zahl=(*rechenfunk[2])(zahl)); break; case '*': printf("%lf",zahl=(*rechenfunk[3])(zahl)); break; case 'q': printf("%lf",zahl=(*rechenfunk[4])(zahl)); break; case 'H': printf("H=%lf",zahl=(*rechenfunk[5])(zahl)); break; case 'V': printf("V=%lf",zahl=(*rechenfunk[6])(zahl)); break; default : printf("op '=','+','-','/','*','q','H','V'\n"); break; } } while(op != '=');
printf("Gesamtergebnis=%lf\n",zahl);
return 0; }
|