C: Wie schaffe ich es, dass das Programm versteht das ich das Prozent in printf als Symbol erhalten möchte und nicht als Bestandteil einer Funktion?
Hallo, ich habe die Zeile:
printf("Please enter your capital in €, your interest rate in % and the number of days in D followed by a blank:");
Das Prozent macht jetzt Probleme. Wie schaffe ich es, dass das Programm versteht, dass ich das Prozent als Symbol erhalten möchte und nicht als Bestandteil einer Funktion?
2 Antworten
Um sicherzustellen, dass das Prozentzeichen als Textausgabe anstatt als Formatierungszeichen verwendet wird, kannst du es mit einem doppelten Prozentzeichen "%%" maskieren. Dies gibt ein einzelnes Prozentzeichen aus, anstatt es als Formatierungszeichen zu interpretieren.
Die Zeile sollte daher so aussehen:
printf("Please enter your capital in €, your interest rate in %% and the number of days in D followed by a blank:");
Mit printf hast du keine Möglichkeit, die Eingabe von Benutzern direkt zu verarbeiten.
Um Benutzereingaben zu verarbeiten, könntest du scanf verwenden.
Zum Beispiel so:
#include <stdio.h>
int main(void) {
double capital;
double interest_rate;
int days;
printf("Please enter your capital in €, your interest rate in %% and the number of days in D followed by a blank:");
scanf("%lf %lf %d", &capital, &interest_rate, &days);
printf("Capital is %lf€, your interest rate is %lf%% and the number of days is %d", capital, interest_rate, days);
}
Alles Klar, Danke. Weshalb hast du aber jetzt double und nicht float verwendet?
Der Typ double wird bei Anwendungen empfohlen , in denen die Genauigkeit von Gleitkommawerten wichtig ist. Zum Beispiel bei wissenschaftlichen Berechnungen oder Geldbeträgen.
In der Regel sind die Werte mit double etwas genauer.
Du kannst aber natürlich auch float benutzen.
Mit float müsstest du dann in der scanf-Funktion das Formatierungszeichen auf %f ändern.
scanf("%f %f %d", &capital, &interest_rate, &days);
Du musst hier die Squenz %% verwenden, ansonsten wird % wie der Beginn eines Platzhalters für eine Variable interpretiert.
Danke, noch kurz eine Frage; ich möchte das man das Kapital in €, Zinssatz in % und Tage in D angibt. Tue ich das erhalte ich als Ergebnis immer 0. Ohne € u.s.w bekomme ich das Richtige Ergebnis, wie schaffe ich jetzt die Zeichen im Programm zu implementieren?