Forum
Tipps
News
Menu-Icon

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Sehr schön.

Version 5.0 mit zusätzlich Modulo, Prozentsatz, Wurzelziehen, Fakultät, Bildschirminhalt löschen und Hilfetext erneut anzeigen... sowie Syntaxhervorhebung.


#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h> /*Header werden eingebunden*/

float zahl1,zahl2,endwert;double ergebnis;char operato;int zaehlvar=1,div0,end,abfrage,help,clear/*Variablen werden definiert*/

float add(float wert1,float wert2) {endwert wert1 wert2; return endwert;} /*Addition wird defiert*/
float sub(float wert1,float wert2) {endwert wert1 wert2; return endwert;} /*Subtraktion wird definiert*/
float mul(float wert1,float wert2) {endwert wert1 wert2; return endwert;} /*Multiplikation wird definiert*/
float div(float wert1,float wert2) {endwert wert1 wert2; return endwert;} /*Division wird definiert*/
float mod(float wert1,float wert2) {endwert = (int)wert1 % (int)wert2; return endwert;} /*Modulo wird definiert*/
float per(float wert1,float wert2) {if(wert1==0||wert2==0) return 0;else return((fabs(wert1)*100.0) / fabs(wert2));} /*Prozentsatz wird definiert*/
float wur(float wert2) {endwert sqrt(wert2); return endwert;} /*Wurzelziehen wird definiert*/
float fak(float wert2) {if(wert2==0){endwert=1;}else{endwert=wert2*fak(wert2-1);}return endwert;} /*Fakultät wird definiert*/

main()
{
    printf("\nWillkommen. Moeglich sind : Addition       : +\n"); /*Instruktionen*/
    printf("                            Subtraktion    : -\n");
    printf("                            Multiplikation : *\n");
    printf("                            Division       : /\n");
    printf("                            Prozentsatz    : p\n");
    printf("                            Modulo         : %%\n");
    printf("                            Sqrt           : 2w\n");
    printf("                            Fakultaet(INT!): 1f\n\n");
    printf("q als Operator zum beenden, also z.b.: 1q1 \n");
    printf("h als Operator, um diesen Text erneut anzuzeigen!\n");
    printf("c als Operator, um Bildschirminhalt zu loeschen.");
    do
    {
        help=0;
        ergebnis=0;
        clear=0;
        printf("\n\n--------- %d.Rechnung ---------\n\n\n",zaehlvar);
        scanf("%f",&zahl1);scanf("%c",&operato);scanf("%f",&zahl2); /*Werte werden eingelesen*/

        switch(operato/*Berechnung*/
        {
            case &#39;+&#39;: ergebnis=add(zahl1,zahl2);
                      break;

            case &#39;-&#39;: ergebnis=sub(zahl1,zahl2);
                      break;

            case &#39;*&#39;: ergebnis=mul(zahl1,zahl2);
                      break;

            case &#39;/&#39;: if(zahl2==0){div0=1;}else ergebnis=div(zahl1,zahl2);
                      break;

            case &#39;%&#39;: ergebnis=mod(zahl1,zahl2);
                      break;

            case &#39;p&#39;: ergebnis=per(zahl1,zahl2);
                      break;

            case &#39;w&#39;: ergebnis=wur(zahl2);
                      break;

            case &#39;f&#39;: ergebnis=fak(zahl2);
                      break;

            case &#39;h&#39;: printf("\nWillkommen. Moeglich sind : Addition       : +\n"); /*Hilfe*/
                      printf("                            Subtraktion    : -\n");
                      printf("                            Multiplikation : *\n");
                      printf("                            Division       : /\n");
                      printf("                            Prozentsatz    : p\n");
                      printf("                            Modulo         : %%\n");
                      printf("                            Sqrt           : 2w\n");
                      printf("                            Fakultaet(INT!): 1f\n\n");
                      printf("q als Operator zum beenden, also z.b.: 1q1 \n");
                      printf("h als Operator, um diesen Text erneut anzuzeigen!\n");
                      help=1;
                      break;

            case &#39;c&#39;: system("cls");
                      clear=1;
                      break;

            default: end=1;
        }

        zaehlvar++;
        if(help!=1)
        {
            if(clear!=1)
            {
                if(end!=1)
                {
                    if(div0!=1)
                    {
                        printf("\n\n= %f\n",ergebnis);  /*Ausgabe*/
                    }
                    else
                    {
                        printf("\n\nDIVISON DURCH 0!");
                    }
                }
            }
        }
    }
    while(end!=1);
    abfrage=getch(); /*Beliebiger Tastendruck*/
}
 

 

Zitat

 if(help!=1)
        {
            if(clear!=1)
            {
                if(end!=1)
                {
                    if(div0!=1)
                    {
                        printf("\n\n= %f\n",ergebnis);  /*Ausgabe*/
                    }
                    else
                    {
                        printf("\n\nDIVISON DURCH 0!");
                    }
                }
            }
        }
    }

Hier würd ich mal überlegen ob du nicht einfach if(bRechnungErfolg){}
einführst spart auch wieder ne ganze latte und das rückt nicht jedesmal tiefer wenn dir neue Optionen einfallen :) 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Nun gut, aber erstmal am C-Tefelwerk weiterarbeiten...

Ich hasse dieses mitgelieferte GUI-Programm...


« Delphie lernen!4523 BG-Entwickler gesucht »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Beta Version
Unter einer Beta Version versteht man ein Programm, das sich in einer Testphase, also noch vor der finalen Version, die veröffentlicht wird, befindet. Allgemein wird...

Bulk Version
Eine Bulk-Version ist nicht für den Einzelverkauf gedacht, sondern für Händler, die daraus ein Komplettangebot zusammenstellen. Oft erhält man nur die...

Retail Version
Eine Ware ist eine Retail-Version (oder auch "Kit-Version" genannt), wenn sie für den Endverbraucher bestimmt ist. Im Grunde kauft der Kunde im Laden immer die Retai...