Forum: PC-Programmierung Array-Wert auslesen


von Freak (Gast)


Lesenswert?

Hi.

Kann mir einer von euch sagen, was für eine Zahl im int Array steht wenn 
man da eine Double-Zahl reinschreibt?

sprich
1
int array[2];
2
3
void array_int()
4
{
5
array[0]=3,14159;
6
array[1]=3,1459*1000;
7
}

Steht nun 3 im array[0] weil der PC rundet?
Und was steht im array[1]? Steht da eher 3000 oder 3141 oder 3142(wegen 
Rundung?)

Bin für jede Hilfe dankbar!

von Klaus W. (mfgkw)


Lesenswert?

Hast du es mal probiert?

von Freak (Gast)


Lesenswert?

nein ich hab keine Software dafür

von Klaus W. (mfgkw)


Lesenswert?

Fragst du das, weil du C lernen willst?
Und du hast keinen Rechner, um es zu probieren?

Naja, ein beiden Fällen steht 3 drin.
Gegenfrage: Warum?
Tip: im C-Buch nach Kommaoperator suchen!

von Freak (Gast)


Lesenswert?

sozusagen :)
danke für deine Hilfe

von Klaus W. (mfgkw)


Lesenswert?

Ich will ja deinen Ehrgeiz wirklich nicht bremsen, aber
ohne C-Compiler wird das auf Dauer nichts.

Notfalls kann ich dir einen Zugang auf einem Rechner einrichten,
wo du dich über Konsole mit C austoben kannst.
Ein Entwicklungssystem auf dem eigenen Rechner wäre natürlich
deutlich komfortabler.

von Freak (Gast)


Lesenswert?

ich installier gerade Visual Studio von Microsoft, hoffe damit komm ich 
weiter.

Mich würde allerdings interessieren, wie ich die 3,141 * 1000, spricht 
3141 ins int array bekomme. Ist sowas möglich?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Freak schrieb:
> Mich würde allerdings interessieren, wie ich die 3,141 * 1000, spricht
> 3141 ins int array bekomme. Ist sowas möglich?

Schon. Informiere Dich mal, wie in C Floatingpoint-Konstanten 
geschrieben werden.

Klaus hat da schon das Stichwort Kommaoperator verwendet.

Ohne C-Buch wird das nichts.

von Floh (Gast)


Lesenswert?

Freak schrieb:
> Mich würde allerdings interessieren, wie ich die 3,141 * 1000, spricht
> 3141 ins int array bekomme. Ist sowas möglich?
Du hast da noch einen Fehler drin.:-)
Klaus Wachtler schrieb:
> Tip: im C-Buch nach Kommaoperator suchen!

von Freak (Gast)


Lesenswert?

Okay den Operator schau ich mir an!

von Karl H. (kbuchegg)


Lesenswert?

Freak schrieb:
> Okay den Operator schau ich mir an!

Aber nur soweit, dass du diesen Operator nicht mehr irrtümlich 
verwendest. Ansonsten machst du einen großen Bogen darum und verwendest 
ihn die nächsten 2 Jahre nicht mehr.

Daher: Lass den Operator gleich Operator sein und sieh lieber nach, wie 
Gleitkommawerte in praktisch allen Programmiersprachen (ausser in 
deutschen, also auch im deutschen Excel) geschrieben werden. Das was du 
geschrieben hast ist ein Kommaoperator, den du dort nicht haben willst. 
Du hast ihn irrtümlich verwendet, weil du die richtige Schreibweise für 
Gleitkommezahlen nicht kennst.

von Spielverderber (Gast)


Lesenswert?

Falls du das Komma durch einen Punkt ersetzt, steht im 1. Beispiel 3 im 
Feld und im 2. Beispiel 3145 (bzw. 3141 wenn du den die 1 nicht 
vergisst).
Nachkommastellen werden beim Typecast weggeschnitten.

von Spielverderber (Gast)


Lesenswert?

Oder ums mal genau zu zeigen:
1
#include <stdio.h>
2
3
int main()
4
{
5
 int array_a[2];
6
 int array_b[2];
7
8
 array_a[0]=3,14159;
9
 array_a[1]=3,14159*1000;
10
11
 array_b[0]=3.14159;
12
 array_b[1]=3.14159*1000;
13
14
 printf("array_a[0]: %d\n", array_a[0]);
15
 printf("array_a[1]: %d\n", array_a[1]);
16
17
 printf("array_b[0]: %d\n", array_b[0]);
18
 printf("array_b[1]: %d\n", array_b[1]);
19
  
20
 return 0;
21
}

produziert als Ausgabe:

array_a[0]: 3
array_a[1]: 3
array_b[0]: 3
array_b[1]: 3141



Und nochwas, als Anfänger ist der Dev-C++ (GPL) eher zu empfehlen als 
Visual Irgendwas.

von schlitten (Gast)


Lesenswert?

Das ist manchmal auch ganz nützlich:
http://codepad.org/

von Freak (Gast)


Lesenswert?

Ich bin echt positiv überrascht von dem Forum. Ihr habt mir sehr 
geholfen.

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.