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?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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:");

Woher ich das weiß:Berufserfahrung – Seit 10+ Jahren aktiv in Web- und Softwareentwicklung

Brubossa 
Fragesteller
 31.12.2022, 15:09

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?

0
SimpleWebDude  31.12.2022, 15:36
@Brubossa

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);
}
1
Brubossa 
Fragesteller
 31.12.2022, 16:02
@SimpleWebDude

Alles Klar, Danke. Weshalb hast du aber jetzt double und nicht float verwendet?

0
SimpleWebDude  31.12.2022, 16:10
@Brubossa

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.

1
SimpleWebDude  31.12.2022, 16:19
@Brubossa

Mit float müsstest du dann in der scanf-Funktion das Formatierungszeichen auf %f ändern.

scanf("%f %f %d", &capital, &interest_rate, &days);
1

Du musst hier die Squenz %% verwenden, ansonsten wird % wie der Beginn eines Platzhalters für eine Variable interpretiert.