Kontrollieren c# taschenrechner

11/18/2013 10:40 [SA]ChilleXx#1
hello com,
undzwar wollte ich wissen ob die beschreibung so richtig ist oder ob ich was falsch hab.

Danke
Code:
#include <stdio.h> //Information zur Standard-Ein / Ausgabe-Bibliothek einfuegen
#include <math.h>  
int main(void) //Anweisungen von Main stehen in geschweiften Klammern

{

double num1, num2, ergebnis; // die Namen die unten bezeichnet werden
char op; // char = ein einzelnes zeichen, op --> operation
num1 = 0; // gibt am dass num1 = 0
num2 = 0; // gibt am dass num2 = 0
ergebnis = 0; 
printf("Taschenrechner von Pascal Geben sie einen Operanden ein:\n", &op);// printf gibt die Zeile aus die Angezeigt wird (frägt nach dem operator)
scanf("%c", &op);
printf("Geben sie die erste Zahl ein:\n", &num1);
scanf_s("%d", &num1); //suche die dezimalzahl die eingetragen wurde
printf("Geben sie zweite Zahl ein:\n", &num2);
scanf_s("%d", &num2); //suche die dezimalzahl die eingetragen wurde

switch(op){

case '+': // (+)gibt an dass es addieren soll
printf("Ergebnis = %d\n", num1 + num2); // es zeigt in der Console dass ergebnis aus num1 + num2, und %n ist ein zeilelnumbruch
break; //Pause oder verlassen der Schleife


case '-': // (-)gibt an dass es subtrahieren soll
printf("Ergebnis = %d\n", num1 - num2); // es zeigt in der Console dass ergebnis aus num1 - num2, und %n ist ein zeilelnumbruch
break; //Pause oder verlassen der Schleife


case '*':// (*)gibt an dass es multiplzieren soll 
printf("Ergebnis = %d\n", num1 * num2); // es zeigt in der Console dass ergebnis aus num1 * num2, und %n ist ein zeilelnumbruch 
break; //Pause oder verlassen der Schleife


case '/': //  (/)gibt an dass es teilen soll 
if(num2 = 0){
printf("Fehler: Division durch Null\n"); //wenn num2 = 0 dann kommt dieser fehler wenn icht dann gehts mit else weiter
} else{
printf("Ergebnis = %d\n", num1 / num2); // es zeigt in der Console dass ergebnis aus num1 / num2, und %n ist ein zeilelnumbruch  
};
break; //Pause


case 5: 
default: printf("Falsche Eingabe\n"); // wenn keine der 4 Angegebenen Grundrechenarten angegeben wird kommt der fehler
break; //Pause
}


return 0;// muss immer angegeben werden sonst funktioniert dass Programm nicht

}
11/18/2013 13:37 dowhile#2
Hi,

was genau war die zugrunde liegende Aufgabe, den Code allgemein zu kommentieren?

Quote:
//Anweisungen von Main stehen in geschweiften Klammern
Das ist bei jeder Funktion so und erklärt nicht, was main() ist (sofern das gefordert ist).

Quote:
// char = ein einzelnes zeichen, op --> operation
Dabei ist der Name "op" natürlich willkürlich gewählt.

Quote:
// printf gibt die Zeile aus die Angezeigt wird (frägt nach dem operator)
printf() gibt die übergebene Zeichenkette aus. Ob es sich dabei um eine konstante Zeichenkette handelt (und deswegen irgendwo im Programm angezeigt wird) oder irgendwie generiert wird (also nie angezeigt wird) ist für printf() egal.

Quote:
//suche die dezimalzahl die eingetragen wurde
"Gesucht" wird nichts. Die Funktion schreibt die vom Benutzer eingegebene Zahl an die entsprechende Speicherstelle "&num1" (num2).

Quote:
// es zeigt in der Console dass ergebnis aus num1 + num2, und %n ist ein zeilelnumbruch
Tippfehler: \n statt %n.

Quote:
//Pause oder verlassen der Schleife
Du hast gar keine Schleife. Das break; beendet das switch/case.

Fehler im Code:
Quote:
if(num2 = 0){
Du brauchst zwei Gleichheitszeichen, bei nur einem wird num2 der Wert 0 zugewiesen. Du willst aber prüfen, ob num2 gleich 0 ist, also if(num2 == 0)
11/18/2013 13:54 Requi#3
Wenn das C# sein soll, ist da so ziemlich alles falsch, bis auf paar variablen deklarationen, sowie die if abfragen.