c programm Hilfe bin im ersten Semester?

4 Antworten

int main()
{
float netto, brutto, ergebnis, steuer;

printf("Programm zur Berechnung eines Bruttobetrages\n\n");
printf("Bitte geben Sie den Nettobetrag in EUR ein: \n");

scanf("%f", &netto);
printf("Nettobetrag = %.2f EUR\n“, netto );

steuer = 19.0f;
ergebnis = netto * steuer / 100.0f;
brutto = netto – ergebnis;

printf("Mehrwersteuersatz %.2f %% = %.2f EUR\n", steuer, ergebnis);
printf("Bruttobetrag = %.2f EUR", brutto);
}

Nur 4 Fehler :-)

  • printf() ist undefiniert
  • printf("Netto...: schließendes " fehlt (typographische Symbole funktionieren nicht)
  • brutto = netto – ergebnis: unbekanntes Zeichen (–)
  • }: kein Rückgabewert.
1

Dein Code sieht eigentlich gut aus, was funktioniert denn noch nicht? Ich kann das gerade nicht testen.

Etwas habe ich jedoch noch gesehen: Du musst, um den Bruttopreis zu berechnen, die Mehrwertsteuer zum Nettopreis addieren, nicht abziehen.

Sorry, kann hier keinen Code einfügen.

Bitte hier anschauen: http://pastebin.com/PMvMX6eg

Code ist kommentiert.

Du hast fast alles repariert. Aber dort hapert's noch:

scanf("%d",&netto);

"%f", denn netto ist ein double.

printf("Nettobetrag = %.2d EUR\n", netto);

"%.2f", denn netto ist immernoch double.

printf("Mehrwertsteuersatz 19 % = %.2d EUR", ergebnis);

Ein Prozentzeichen wird mit "%%" ausgegeben. Herumstreunende einzelne "%" im Formatstring produzieren gern lustige Ausgaben oder Schlimmeres.

Und natürlich auch hier wieder (und weiter unten nochmal): "%.2f"

1
@ralphdieter

Sorry, ich hab's nicht compiliert/getestet, sondern nur "aus dem Gedächtnis" geschrieben, aber Du hast Recht.

1
@NoHumanBeing

WOW, dafür war das dann echt gut. Ich kenne sonst nur Leute, die ganz nervös werden, wenn ihr Code nicht sofort beim Tippen knallebunt wird. Die könnten keine drei Zeilen ohne ihre geliebte Entwicklungsumgebung schreiben :-/

1

warum soll ich den double benutzen und nicht float, was sind die auswirkungen von den einzelnen ?

1
@phillip12397

Den double habe ich einfach übernommen, da Du bereits double benutzt hast.

Bei double handelt es sich um eine 64-bit Gleitkommazahl, bei float um eine 32-bit Gleitkommazahl. Deshalb bietet double eine höhere Genauigkeit, als float.

Ich würde standardmäßig immer double benutzen, außer Du hast einen bestimmten Grund, float zu benutzen. Die einzigen Gründe, float zu benutzen, die mir einfallen, sind folgende.

  • Du musst für eine bestimmte Datenstruktur oder API float benutzen.
  • Du möchtest Millionen von Gleitkommazahlen (z. B. in einem Array) ablegen oder sonst irgendwo aggressiv Speicher sparen (z. B. auf einem "embedded system" mit sehr knappen Ressourcen).
  • Du rechnest auf einer Prozessorarchitektur, die float effizienter verarbeiten kann, als double. Bei den meisten Grafikprozessoren (GPUs) ist das der Fall. Bei Prozessoren mit x86(-64)-Architektur ist es egal, da die Gleitkommaeinheit ohnehin mit 64 oder gar 80 Bit Präzision arbeitet. Hier ist double eventuell sogar etwas schneller, als float.


Im Grunde ist double vs. float ein bisschen so, wie int vs. short. Du würdest (auch für kleine Zahlen) nicht explizit short benutzen, außer Du hast wirklich einen Grund, dies zu tun.

Da dies nur ein "Uniprojekt" ist, ist es egal, aber bei professionellen Anwendungen rechnet man niemals mit Gleitkommazahlen, wenn es um Geld geht, da Gleitkommaoperationen nicht exakt sind, sondern es eine so genannte "Maschinengenauigkeit" gibt.

1

aber wenn ich jetzt bei scanf ("%lf", &netto); eingebe und es dann ausführe ( habe 50 eingegeben ) kommt dann 1074339840 davor mit float hats geklappt

1
@phillip12397

Ich habe gerade folgenden Code geschrieben (zum Testen).

#include "stdio.h"

int main (int argc, char** argv)
{
double d;
scanf("%lf", &d);
printf("%lf\n", 2.0 * d);
return 0;
}

Dann compiliert und ausgeführt.

$ cc -o test test.c
$ ./test
50
100.000000
$

Scheint zu funktionieren. ;-)

1
@NoHumanBeing

Purer Zufall! "%lf" ist bei printf() nicht definiert. "%f" passt für float und double, da float automatisch in double umgewandelt wird. Aber die meisten Implementierungen ignorieren das 'l' einfach.

Vielleicht klappt's nur beim Fragesteller nicht. Das allereinfachste wäre immernoch, alle Compiler-Warnungen einzuschalten und zu lesen.

1

Ware in EU-Ausland (mit ausländischer MwSt) gekauft. Wie verbuche ich richtig?

ich habe in Österreich ein USB-Stick in einem Geschäft gekauft. (Ich bin Unternehmer mit Ust-IdNr).

Rechnung:

Ware Netto-Preis Steuersatz Steuer Brutto-Preis

USB-Stick 50 EUR 21% 10,5 EUR 60,5 EUR

Ich möchte nun diese Ware verbuchen (ich möchte die Steuer über Vorsteuervergütung nicht zurückerstatten). Wie gehe ich jetzt vor?

Soll ich die Brutto-Summe als Netto-Summe in Programm eingeben und dann als innergemeinschaftlicher Erwerb auf diese Brutto-Summe 19% Steuer / 19 % Vorsteuer rechnen? Ist das richtig? Wenn nicht, welcher Steuerschlüssel soll ich verwenden?

...zur Frage

Berechnung Krankengeld, falsch?

Hallo,

benötige Hilfe bei der Berechnung von Krankengeld, habe schon einen Krankengeld-Rechner bemüht und komme auf völlig andere Zahlen als die KK.

Hier die Daten der letzten 3 Monate vor Krankmeldung:

Entgelt Arbeitgeber 2858,94 €

Nachtzuschlag   385,66 €

Spätzuschlag  67,49 €

VWL AG Anteil  26,59 €

Samstagszulage  244,00 €

Betr. AV.AG Lfd. St-Frei 24,- €

Betr. AV.An. Lfd. St-Frei 120,- €

Betr. AV.An Lfd. Geh. Ver  120,- € -

Gesamt- Brutto 3.582,68 €

Steuer-Brutto 3.077,02 €

Netto-Verdienst 2.420,88 €

-----------------------------------

Gesamt Brutto  3.546,94 €

Steuer-Brutto 3.192,39 €

Netto-Verdienst 2.326,10 €

-----------------------------------

Gesamt Brutto 3.166,16 €

Steuer-Brutto 2.822,65 €

Netto-Verdienst 2.132,57 €

-------------------------------------

Einmalzahlungen

Weihnachtsgeld Brutto: 1.429,47 €

Urlaubsgeld Brutto: 1.438,99 €

--------------------------------------

laut meiner Berechnung:

Brutto durchschnittlich 3.030,67 €

Netto    "                           2.293,19€

Einmalzahlung:        2.868,46 €

ergibt Nettokrankengeld  65,- €

Krankenkasse hingegen hat nur 53,08 € berechnet ? 

Hab ich bei der Berechnung einen Fehler gemacht oder liegt die KK falsch ?

Schon jetzt herzlichen Dank für die Hilfe / Aufklärung

...zur Frage

SKR 03 - Netto- oder Bruttobetrag auf 03100 (Wareneinsatz und Fremdleistung) buchen?

Hallo,

ich bin umsatzsteuerpflichtiger Einzelunternehmer. Muss ich bei Betriebsausgaben bei 03100 Wareneinsatz und Fremdleistung (SKR 03) den Netto- oder Bruttobetrag einbuchen?

Ich nehme an, dass ich den Nettobetrag auf das Konto 03100 und die verauslagte Vorsteuern auf das Konto 01576 (bei SKR 03) buche richtig?

Bitte um eine Rückmeldung. Vielen Dank!

...zur Frage

Wie lerne ich Programmier-Basics?

Ich würde gerne mal ausprobieren zu programmieren, aber da es so viele verschiedene Sprachen gibt, bin ich etwas überfordert und weiß nicht direkt wo ich anfangen soll, vorallem weil ich zuerst noch die Basics lernen sollte. Wie kann ich das am besten machen? Oder soll ich gleich mit einer Sprache wie z.B Java beginnen? Gibt es dazu gute Youtube Kanäle oder Internet Seiten? Danke schonmal

...zur Frage

Hallo Kein brutto oder netto im Vertrag aufgeführt. Als Freiberufler, was ist es ohne diese Angabe am Ende ?

Ich bin Freiberufler und habe für einen Job einen Vertrag bekommen in dem das Honorar ohne netto oder brutto aufgeführt ist. Nun bin ich Mehrwertsteuerpflichtig und somit wäre das normalerweise für mich der nettobetrag. Ich will mir aber mein Auftraggeber erklären, das er mit mir einen bruttobetrag verhandelt hat. Ich bin über 15 Jahre selbstständig und ich habe noch nie einen bruttobetrag verhandelt. Somit verdiene ich dann auch für den Job das nicht verhandelte Honorar wenn ich brutto berechne. Wenn es hart auf hart kommt, was ist die Summe im Vertrag am Ende reinrechtlich gesehen, wenn dort ohne brutto oder netto dahinter steht?

...zur Frage

Programmieren lernen?

Wie kann man am besten Programmieren lernen. Bin schon seid längerer Zeit dabei und kann auch schon ein bisschen, aber ab jetzt komme ich nicht weiter. Hat jemand Tipps oder Empfehlungen für mich, die auch recht einfache Voraussetzungen haben?

...zur Frage

Was möchtest Du wissen?