Forum: PC-Programmierung Array initialisieren


von Tom (Gast)


Lesenswert?

Hey zusammen,

ich hab grad ein eigentlich nicht so schwieriges Problem, aber ich komm 
einfach nicht auf die Lösung.
Ich möchte einen String aus Double's initialisieren, wie unten im Code.
Da möchte ich eigentlich Element 0 auf den Wert 2 setzen, aber in der 
Ausgabe erhalte ich dann
"Wert 0: 0" und nicht 2.

Wäre super, wenn mir jemand helfen kann!
Tom





1
#include <stdio.h>
2
#include <string.h>
3
4
int main(){
5
6
    double d_string[10];
7
8
    int i=0;
9
10
    d_string[0]=2;
11
12
    printf("Wert 0: %d ",d_string[0]);
13
    return 0;
14
}

von Tobiflea (Gast)


Lesenswert?

Printf musst du die Adresse übergeben, also: &d_string[0]

von Tobiflea (Gast)


Lesenswert?

Und im Formatstring muss für die Darstellung einer gleitkommazahl %f 
stehen.

von Karl H. (kbuchegg)


Lesenswert?

Tobiflea schrieb:
> Printf musst du die Adresse übergeben, also: &d_string[0]

Quatsch

von Karl H. (kbuchegg)


Lesenswert?

Tom schrieb:

>     double d_string[10];
>
>     int i=0;
>
>     d_string[0]=2;
>
>     printf("Wert 0: %d ",d_string[0]);


%d ist für int.
für double musst du %f (oder %lf) nehmen.

von Tom (Gast)


Lesenswert?

Achso, %f ^^
hatte für float und double %d in Erinnerung^^

Vielen Dank!
Tom

von DirkB (Gast)


Lesenswert?

%d steht für Dezimal. Im Gegensatz zu %x und %o.
%f steht für float und double.
%lf ist undefiniert, obwohl es "damals" (vor C89) durchaus für double 
benutzt wurde.
%Lf ist für long double (großes L)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.