Seite 1 von 1

[C] f*f (unendlich)

Verfasst: Do Aug 14, 2014 10:37 pm
von AlexImperator

Code: Alles auswählen


#include <stdio.h>

int main ()
{
	int f=2;
	
	for(;;)
	{
		f=f*f;
		printf("%d\n",f);
	}
		
	return 0;
}
ich seh das problem nicht aber ich bekomme nur Nullen :/

Code: Alles auswählen

//soll bis ins unendliche 2er potenzen ausgeben

#include <stdio.h>

int main ()
{
	int f=1;
	
	for(;;)
	{
		f=f*2;
		printf("%d\n",f);
	}
		
	return 0;
}
da das gleiche problem

Danke in Voraus :)

Re: [C] f*f (unendlich)

Verfasst: Fr Aug 15, 2014 12:47 am
von Xin
Beim ersten Listing solltest Du %f statt %d nehmen und beim zweiten Listing solltest Du neu kompilieren - das sollte funktionieren. ;-)

Re: [C] f*f (unendlich)

Verfasst: Fr Aug 15, 2014 11:32 am
von AlexImperator
sry wenn ich jz ganz blöd frag: Was meinst du mit Listing

meinst du ich soll die zeile so verändern?

Code: Alles auswählen

printf("%f\n",f);
ich weiß auch nicht was du dann mit
beim zweiten Listing solltest Du neu kompilieren
so hab ich das verstanden:

Code: Alles auswählen

for(;;)
{
      f=f*2;
      printf("%d\n",f);
      kompilier dich neu
 }
:D

sry hab echt keine ahnung :( :oops:

Re: [C] f*f (unendlich)

Verfasst: Fr Aug 15, 2014 11:41 am
von Xin
AlexImperator hat geschrieben:sry wenn ich jz ganz blöd frag: Was meinst du mit Listing
Ein Listing ist ein anderes Wort für Quelltext oder Ausschnitt eines Quelltextes.
AlexImperator hat geschrieben: meinst du ich soll die zeile so verändern?

Code: Alles auswählen

printf("%f\n",f);
Beim ersten Listing ja.
AlexImperator hat geschrieben: ich weiß auch nicht was du dann mit
beim zweiten Listing solltest Du neu kompilieren
so hab ich das verstanden:

Code: Alles auswählen

for(;;)
{
      f=f*2;
      printf("%d\n",f);
      kompilier dich neu
 }
:D

sry hab echt keine ahnung :( :oops:
Wie erzeugst Du aus Deinem Quelltext ein lauffähiges Programm?

Re: [C] f*f (unendlich)

Verfasst: Fr Aug 15, 2014 12:22 pm
von AlexImperator
aso

ja hab beides gemacht bekomm beim ersten immer 0.00000
der 2. tipp hat auch nicht geholfen hatte es ohnehin schon 3x kompiliert immer noch nur Nullen

Re: [C] f*f (unendlich)

Verfasst: Fr Aug 15, 2014 1:12 pm
von Xin
AlexImperator hat geschrieben:aso

ja hab beides gemacht bekomm beim ersten immer 0.00000
der 2. tipp hat auch nicht geholfen hatte es ohnehin schon 3x kompiliert immer noch nur Nullen
:-D

Okay... nehmen wir den Quelltext mit int und %d. Der kann nicht nur Nullen ausgeben. Das gibt der Quelltext nicht her, der muss - da f = 1 ist, und f anschließend verdoppelt wird und dann ausgegeben wird, also schonmal 2 ausgeben. Und das tut er auch.

Dann kommen wir kurz zum Kommentar:

Code: Alles auswählen

//soll bis ins unendliche 2er potenzen ausgeben
Computer kennen keine Unendlichkeit - schonmal gar nicht bei Integers.

Ändern wir den Quelltext ein wenig:

Code: Alles auswählen

#include <stdio.h>

int main ()
{
   int f=1;

   for(;f!=0;)   // <- Änderung
   {
      f=f*2;
      printf("%d\n",f);
   }

    return 0;
}
Die Schleife bricht ab, wenn Nullen kommen. Dann siehst Du auch mal, was vor den Nullen kommt.

Dann schau Dir das hier an: Zahlendarstellung.