title: Calculator with one function
body: <p>This calculator should work by using one function(switch/case).
  Unfortunately i get compilation errors and I don`t understand why.</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  float calculate(char optr, float opr1, float opr2) {
  
  switch(optr) {
  case '+': ergebnis = opr1+opr2; break;
  case '-': ergebnis = opr1-opr2; break;
  case '*': ergebnis = opr1*opr2; break;
  case '/': ergebnis = opr1/opr2; break;
  case 'q': exit(0);
  default: cout &lt;&lt;"unbekanntes Rechenzeichen...\n"; return1;
  }
  return ergebnis;
  }
  
  
  int main(void) {
  char optr;
  float opr1, opr2, ergebnis;
  
  //Eingabe
  printf("\nEingabe Operator(+,-,*,/,q)"); scanf("%c", &amp;optr);
  printf("\nEingabe Zahl1"); scanf("%f", &amp;opr1);
  printf("\nEingabe Zahl2"); scanf("%f", &amp;opr2);
  
  //Verarbeitung
  ergebnis = calculate(char optr, float opr1, float opr2);//Ausgabe
  printf("\nErgebnis: %f\n", ergebnis);
  return 0;
  }
  </code></pre>
  
  <p>What do I have to change?</p>
  
  <pre><code>prog.c: In function ‘calculate’:
  prog.c:6:15: error: ‘ergebnis’ undeclared (first use in this function)
   case '+': ergebnis = opr1+opr2; break;
             ^
  prog.c:6:15: note: each undeclared identifier is reported only once for each function it appears   in
  prog.c:10:5: error: implicit declaration of function ‘exit’ [-Werror=implicit-function-declaration]
   case 'q': exit(0);
   ^
  prog.c:10:15: error: incompatible implicit declaration of built-in function ‘exit’ [-Werror]
   case 'q': exit(0);
             ^
  prog.c:11:14: error: ‘cout’ undeclared (first use in this function)
   default: cout &lt;&lt;"unbekanntes Rechenzeichen...\n"; return1;
            ^
  prog.c:11:55: error: ‘return1’ undeclared (first use in this function)
   default: cout &lt;&lt;"unbekanntes Rechenzeichen...\n"; return1;
                                                     ^
  prog.c: In function ‘main’:
  prog.c:27:26: error: expected expression before ‘char’
   ergebnis = calculate(char optr, float opr1, float opr2);//Ausgabe
                        ^
  prog.c:27:26: error: too few arguments to function ‘calculate’
  prog.c:3:11: note: declared here
   float calculate(char optr, float opr1, float opr2) {
         ^
  prog.c: In function ‘calculate’:
  prog.c:14:5: error: control reaches end of non-void function [-Werror=return-type]
   }
   ^
  cc1: all warnings being treated as errors
  </code></pre>
  
  <p>edit: sorry, forgot about the errors</p>
  
  <p>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</p>