Browse Source

Added files

master
Rainer Hihn 3 years ago
parent
commit
015c955145
1 changed files with 106 additions and 0 deletions
  1. +106
    -0
      calc.c

+ 106
- 0
calc.c View File

@@ -0,0 +1,106 @@
/***********************
* Ein einfacher Taschenrechner
*
* Rainer Hihn
*/

#include <stdio.h>

void exit(int);

float calculate(char optr, float opr1, float opr2)
{
float rErg = 0;

switch(optr) {
/**
* addieren
*/
case '+':
rErg = opr1 + opr2;
break;
/**
* subtrahieren
*/
case '-':
rErg = opr1 - opr2;
break;
/**
* multiplizieren
*/
case '*':
rErg = opr1 * opr2;
break;
/**
* dividieren
*/
case '/':
rErg = opr1 / opr2;
break;
/**
* Wenn kein erlaubter
* Operator eingegeben wurde
*/
default:
printf("Falscher Operator: %c \n", optr);
exit(1);
}

return rErg;
}

int main(void)
{
/**
* Variablendeklaration
*/
char cOptr;
float fOpr1;
float fOpr2;
float fErg;

while(1)
{
printf("Eingabe: Operator <return> Operand1 <return> Operand2 <return> \n");

/**
* Benutzereingabe Operator
*/
printf("Bitte Eingabe Operator \n");
scanf(" %c", &cOptr);

/**
* Programm wird beendet wenn
* 'q' eingeben wird
*/
if(cOptr == 'q')
{
break;
}

/**
* Benutzereingabe Operand 1
*/
printf("Bitte Eingabe Operand1: \n");
scanf(" %f", &fOpr1);
/**
* Benutzereingabe Operand 2
*/
printf("Bitte Eingabe Operand2: \n");
scanf(" %f", &fOpr2);

if(cOptr == '/' && fOpr2 == 0)
{
printf("ehm ... nein? \n");
break;
}

/**
* Ergebnis berechnen und ausgeben
*/
fErg = calculate(cOptr, fOpr1, fOpr2);
printf("%f %c %f = %f \n\n", fOpr1, cOptr, fOpr2, fErg);
}

return 0;
}

Loading…
Cancel
Save