c rechnung
-
Hallo,
Ich hätet hier zu eine Frage:
float ergebnis; int x = 10, y = 3; ergebnis = x/y; printf("Ergebnis : %f\n", ergebnis); /* 3.000... */Warum ergibt sich aus dieser Rechnung 3,00 ?? Da kommt doch eigtl 3,333333... raus ?!
Oder habe Ich irgend etwas falsch gemacht?
Danke im Voraus
-
weil erst die division durchgeführt wird und das ergebnis dann in einen float gecastet wird. Außerdem ist das das falsche Forum!
#include <stdlib.h> int main() { printf("Ergebnis: %f\n", 10.0f / 3.0f); }...
-
Also würde es auch so gehen?:
float ergebnis; int x = 10, y = 3; ergebnis =(float) x/y; printf("Ergebnis : %f\n", ergebnis); /* 3.000... */also bei mir klapt es so jetz auf jeden fall
-
naja ... klappt in dem Fall ... solltest y auch noch casten ... oder du machst x und y direkt vom typen float ^^
-
float ergebniss; int x = 10; int y = 3; ergebniss = static_cast<float>(x)/y; std::cout << ergebniss << std::endl;Jedenfalls im C++ - Subforum.
-
öhm Michael991 ... überließ einfach darthdespotism's Post.
std::cout << (10.0f / 3.0f) << std::endl;? Wofür da casten und überhaupt ne Variable anlegen?
-
Was ist den cout und std und endl????? und warum static_cast was ist da für ein Unterschied zu meinem? *verwirrt*
-
achso ok ..
-
(D)Evil schrieb:
std::cout << (10.0f / 3.0f) << std::endl;? Wofür da casten und überhaupt ne Variable anlegen?
Die deklaration der int könnte ja dazu dienen ein Minimalbeispiel zu erstellen während die int im Zielprogramm aus irgendwelchen funktionen zurückgeliefert werden.
-
#include <stdio.h> #include <stdlib.h> int main() { char z = 'C'; printf("Wert : %d ->(ASCII-codiert)->%c\n" ,z,z); system("PAUSE"); return 0; }Könnte hier zu noch eine Erklärung gebrauchen

und zwar warum steht am Ende von printf zweimal ,z,z?
Könnte es mir so erklären weil 2mal nach z verlangt wird, ist dies Richtig?
-
Könnte es mir so erklären weil 2mal nach z verlangt wird, ist dies Richtig?
Ja du willst ja einmal den Dez Wert und einmal den ASCII wert
-
habe noch etwas

Angenommen, ein Autor erhält 5% Honorar pro verkauftes uch, das mit einem Verkaufspreis von 15,95 Euro angesetzt ist. Wie viele Bücher muss er verkaufen, damit er Millionär wird?
Könntet ihr mir dafür bitte den C Code geben der für einen totalen NEULING lesbar ist und ihn vllt noch ein bisschen erklären

Danke
-
Hausaufgabe machen wir eigentlich nicht...
Aber als Anleitung:
Rechne mal 5% von 15,95 aus und dann dividiere 1000000 durch diesen wert...
Ist genau eine zeile Code...Sind geschätzt 1,2 Mio Bücher
-
Na ist doch simple Prozentrechnung ...
-
#include <stdio.h> #include <stdlib.h> int main() { double rechnung, honorar_vb = 5, buch = 15,95; double honorar; honorar = 19,95/100*5; buch = 1000000/honorar printf("Honoraranteil : %f\n", honorar); printf("Wiviele Bücher er verkaufen muss um Millionär zu werden : %lf\n", buch); system("PAUSE"); return 0; }was mach ich denn hier falsch

-
hmm du glaubst das % das selbe ist wie die mathematische Prozentrechnung. % ist ein Modulo-Operator.
#include <stdio.h> #include <stdlib.h> int main() { double honorar = 5 / 100 * 15,95; // p / 100 * G buch = honorar/1000000 printf("Honoraranteil: %f\n", honorar); printf("Wiviele Bücher er verkaufen muss um Millionär zu werden : %lf\n, (1000000 / honorar)); }...
-
#include <stdio.h> #include <stdlib.h> int main() { double honorar = 5 / 100 * 15,95; double buch = honorar/1000000; printf("Honoraranteil : %f\n", honorar); printf("Wiviele Bücher er verkaufen muss um Millionär zu werden : %lf\n", buch); system("PAUSE"); return 0; }double honorar = 5 / 100 * 15,95;
hier soll ein syntaxfehler sein?
-
Hallo !
Michael991 schrieb:
#include <stdio.h> #include <stdlib.h> int main() { double rechnung, honorar_vb = 5, buch = 15,95; // 15.95 -> Punkt statt Komma double honorar; honorar = 19,95/100*5; // Modulo geändert, ok, aber trotzdem Punkt statt Komma buch = 1000000/honorar printf("Honoraranteil : %f\n, honorar); // String-Ende Zeichen, die Gänschefüßchen rechts fehlen. printf("Wiviele Bücher er verkaufen muss um Millionär zu werden : %lf\n", buch); system("PAUSE"); return 0; }was mach ich denn hier falsch

Die Fehler habe ich dir mal kommentiert.
Hast du einen stummen Kompiler der dir die Fehler nicht anzeigt ?
-
Michael991 schrieb:
double honorar = 5 / 100 * 15,95;
hier soll ein syntaxfehler sein?
Bingo !!! Ersetze das Komma durch einen Dezimalpunkt .

Edit: Da hat sich das eine oder andere Posting überschnitten.
-
#include <stdio.h> #include <stdlib.h> int main() { double rechnung, honorar_vb = 5, buch = 15.95; double honorar; honorar = 15.95/100*5; buch = honorar/1000000; printf("Honoraranteil : %lf\n", honorar); printf("Wiviele Buecher er verkaufen muss um Millionaer zu werden : %lf\n", buch); system("PAUSE"); return 0; }ok er führt es aus, aber:
Honoraranteil = 0,797500 (Euro?)
Buecher die er verkaufen muss um Millonaer zu werden: o,ooooo1
Hat das seine Richtigkeit?