Subtraktion mit mehreren Variabeln

Ich bin dabei die Sprache C zu lernen. getreu dem Motto „learning by doing“ habe ich mich einmal rangesetzt und einen primitiven Rechner programmiert. Diese will ich im laufe meines Lernens immer weiter ausbauen und verbessern. momentan bin ich dabei die möglichkeit hinzuzufügen die einzelnen Operationen mit mehreren Variablen zu ermöglichen, heißt addition mit zb. 4 Variablen (3+4+2+6) bei der Multiplikation habe ich das auch schon hinbekommen.
Allerdings stehe ich nun vor der Subtraktion und Division und komme einfach nicht weiter mein problem liegt hier

wie man sieht habe ich Summe „genullt“ und sie so definiert

„summe=summe+zahl;“

Produkt habe ich auf 1 gesetzt und wie folgt definiert

„Produkt=Produkt*zahl;“

diese beide funktionieren auch, allerdings habe ich keine Ahnung wie ich das bei der Subtraktion bzw. bei der Division handhaben soll.

bei der subtraktion komme ich immer mit dem Vorzeichen in die quere und bei der Division finde ich gar keinen grünen zweig.

wahrscheinlich ist die Lösung ganz einfach, ich übersehe sie bloß.

Bitte werft mal einen Blick drauf

mfg
globus

ps.: stört euch nicht an dem © das ist bloß da weils schick aussieht

script ist auf paste2.org, weils übersichtlicher ist

http://paste2.org/p/1565491

trotzdem hier noch einmal

/* --real calc © By TimHartmann-- */

#include
#include
#include

main ()

{
while(1)
{
char eingabe;
int anzahl,x;
double zahl,summe=0.0,Produkt=1.0,z,y;
printf("\n\t\t\t\t R E A L C A L C\n");
printf("\t\t\t\t------------------- \n\n");
printf("\n F\x81r Hilfe H eingeben");
printf("\n\n w\x84hle eine Rechenoperation \n\n 1 Addition (+)"
„\n 2 Subtraktion (-)\n 3 Multiplikation (*)“
„\n 4 Division (/)\n\n“);
printf(" Bitte ein Rechenzeichen eingeben: \n\n");
do{
eingabe=getch();
} while (isspace(eingabe));
printf("\n Dein Wahl: %c !\n\n" , eingabe);

switch(toupper(eingabe))
{ case ‚+‘:
printf(„wie viele Variabeln sollen verwendet werden?\n“);
printf("\n");
scanf("%i",&anzahl);
for (x=1; x

Hallo globus,

bei „/“ (geteilt), brauchst du einen Datentyp, der Kommazahlen erlaubt, also etwas wie float, oder double (Fließkommazahlen). Was passiert bei 3/0 zum Beispiel… Siehe hier:

-> http://www.proggen.org/doku.php?id=c:type:floats

Bei „-“ musst du dir klarmachen, was signed (- bis +) und unsigned (0 bis +) bedeutet. Was passiert, wenn die Zahl negativ wird? Siehe dazu:

-> http://de.wikipedia.org/wiki/Integer_%28Datentyp%29#…

Wozu brauchst du ernsthaft while(1)? Kannst du das nicht mit einer Variable steuern?

Du solltest anfangen bestimmten Code in Funktionen/Prozeduren auszulagern, macht sich besser beim lesen und entwickeln…

-> http://www.wirthi.at/w/C-Tutorial_Kapitel_6

Viel Erfolg,

Roman

Hallo Roman,

Was passiert bei 3/0 zum Beispiel… Siehe hier:
-> http://www.proggen.org/doku.php?id=c:type:floats

was hat dich zu der Vermutung verleitet 3 oder 0 oder 3/0 wären floats oder doubles? Mitnichten! Wenn 3/0 im Quellcode steht, so wird der Compiler in der Regel eine „Integer“ Division by 0 anmeckern …

Gruss
norsemanna

Hallo norsemanna,

3, oder 0 sind Ganzzahlen, zweifle ich auch nicht an. Ich wollte nur den Hinweis geben, dass man nicht alles teilen darf, so eine kleine Gedankenanregung…

Beim nächsten Mal schreibe ich 3.0 und 0.0 Männo :smiley:

wären floats oder doubles? Mitnichten! Wenn 3/0 im Quellcode
steht, so wird der Compiler in der Regel eine „Integer“
Division by 0 anmeckern …

-> http://de.wikipedia.org/wiki/Laufzeitfehler

Grüße Roman