# Zapfenrechnen in C



## nordpark (1. Mai 2005)

Hallo,

Ich habe heute mal ein Programm geschrieben, das einen Zapfen rechnen soll.
Das klappt auch ganz gut, nur das das Ergebnis am Anfang und das ergebnis am Ende nicht gleich sind.

Hier der Code:

```
#include <conio.h>
#include <stdio.h>

void main (void)
{
 float fMinMD;
 float fMaxMD;
 float fStart;
 float fErgebnis;
 float fMulti;
 float fDivi;

 printf("Zapfenrechnen\n");
 printf("----------------\n");
 printf("minimaler Multiplikator:");
 scanf("%f",& fMinMD);
 printf("maximaler Multiplikator:");
 scanf("%f",& fMaxMD);
 printf("Startwert:");
 scanf("%f",& fStart);

 fMulti = fMinMD;
 fDivi = fMinMD;

 while(fMulti<=fMaxMD)
  {
   fErgebnis = fStart*fMulti;
   printf("\n%f x %f = %f", fStart, fMulti, fErgebnis);
   fMulti++;
   fStart = fErgebnis;
  }

 while(fDivi<=fMaxMD)
  {
   fErgebnis = fStart/fDivi;
   printf("\n%f / %f = %f", fStart, fDivi, fErgebnis);
   fDivi++;
   fStart = fErgebnis;
  }

 getch ();
}
```

Bitte helft mir, es ist wichtig.
Ich habe euch die .exe Datei beigelegt.
Danke im Voraus.

mfg tommy


----------



## Matthias Reitinger (1. Mai 2005)

Wenn du uns jetzt noch verraten würdest, was du unter "Zapfenrechnen" verstehst...?  
Dein Quellcode strotzt nicht grad von Kommentaren...


----------



## Gawayn (1. Mai 2005)

Na ja, was ein Zapfen ist, wusste ich zwar auch nicht, aber man kann schnell herausfinden, was damit gemeint ist. Ich habe dabei ein ganz anderes Problem, nämlich dass dein Code bei mir 1a funktioniert. Bei mir kommt am Ende genau das raus, was ich am Anfang eingegeben habe. Als Beweis zeige ich mal das Output deines Programms:

```
Zapfenrechnen
----------------
minimaler Multiplikator:2
maximaler Multiplikator:9
Startwert:23

23.000000 x 2.000000 = 46.000000
46.000000 x 3.000000 = 138.000000
138.000000 x 4.000000 = 552.000000
552.000000 x 5.000000 = 2760.000000
2760.000000 x 6.000000 = 16560.000000
16560.000000 x 7.000000 = 115920.000000
115920.000000 x 8.000000 = 927360.000000
927360.000000 x 9.000000 = 8346240.000000
8346240.000000 / 2.000000 = 4173120.000000
4173120.000000 / 3.000000 = 1391040.000000
1391040.000000 / 4.000000 = 347760.000000
347760.000000 / 5.000000 = 69552.000000
69552.000000 / 6.000000 = 11592.000000
11592.000000 / 7.000000 = 1656.000000
1656.000000 / 8.000000 = 207.000000
207.000000 / 9.000000 = 23.000000
```
Oder habe ich da etwas falsch verstanden? (Allerdings habe ich deine EXE-Datei nicht runtergeladen, sondern habe den Code bei mir mit VC++ kompiliert.)


----------



## FireFlow (1. Mai 2005)

Umso genauer man ein Problem definiert, umso näher kommt man an die Lösung (hab ich von so nem SE Lehrer, und ich glaube er hat Recht^^). Ich glaube hier weiß keiner was genau nicht funktioniert. 

Ich hab das Programm angeschaut und es klappt doch! Das einzige was sein könnte: Du solltest beim Teilen wieder mit der höchsten Zahl anfangen, dann wird der "Zapfen" symetrisch.


----------

