C - wie teilen Sie schwimmt?
Bekomme ich input von der command line als int-d.... Jetzt bin ich mit diesem problem konfrontiert:
float a,b;
int d;
float piece;
printf("Please enter the parts to divide the interval: ");
scanf("%d", &d);
a=0;
b=1;
piece=b-a/(float)d;
printf("%f\n",piece);
Alles was ich will ist zu printf einige float-Zahl abhängig &d. z.B. wenn ich hier schreiben 5, ich würde 0.20000, für 6 - 0,166666 aber ich bin noch immer 1.000000 für alle zahlen, wer weiß Lösung?
- b - (0/d) == b == 1
- Können Sie uns zeigen, die Zeile wo Sie deklariert
piece
? - Wo ist
d
erklärt? - jetzt ist es korrigiert, d ist eine ganze Zahl, und erklärt, wie es sein sollte
- Du meinst "abhängig (der Wert von)
d
", nicht "abhängig&d
".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klammern:
Division hat Vorrang vor Subtraktion, so dass Sie brauchen, um setzen Sie die Subtraktion in Klammern. Sie müssen nicht explizit umgewandelt werden d zu schweben; die Teilung ein Schwimmer Sie zu fördern, zu schweben.
Ich glaube Sie wollen:
I. e., das problem ist nicht die Teilung, sondern der Reihenfolge der Operationen.
Ich denke, diese Zeile:
piece=b-a/(float)d;
werden sollte:
piece=(float)(b-a)/(float)d;
Just my 2 cents.
BEARBEITEN
Seit
d
ist ein int, vielleicht versuchen Sie dies:piece=(float)((b-a)/d);
a
undb
sind bereits schwimmt, so(a-b)
ist ein float-Ausdruck. In der Tat, weder der cast ist notwendig, dad
wird automatisch gefördert werden, in diesem Ausdruck.