006
20.11.2004, 14:58 Uhr
~Pler
Gast
|
Ich hab das mal versucht schnell runterzutippen, ich hoffe es stimmt mathematisch! Ansonsten sollte es gehn, aber testen wuerde ich es schon noch mal!
C++: |
#include <stdio.h>
#define MAXJAHRE 20 #define MINBESTAND 2 #define MAXBESTAND 1000 #define MINABSCHUSS 0 #define MAXABSCHUSS 100 #define MINZUWACHS -10.0 #define MAXZUWACHS 20.0
int main( void ) { int iBestand_Start, iBestand_Akt, iAbschussrate, iJahr_Akt = 0;
int bBedingung = 1; // TRUE double dZuwachsrate;
printf( "Bitte geben Sie den aktuellen Bestand ein:\n" ); scanf( "%d" , &iBestand_Start ); while( !( iBestand_Start < MAXBESTAND ) && !( iBestand_Start > MINBESTAND ) ) { printf( "Zahl muss zwischen %d und %d liegen:\n" , MINBESTAND , MAXBESTAND ); scanf( "%d" , &iBestand_Start ); }
printf( "Bitte geben Sie die Anzahl der zum Abschuss freigegebenen Fuechse ein:\n" ); scanf( "%d" , &iAbschussrate ); while( !( iBestand_Start < MAXABSCHUSS ) && !( iBestand_Start > MINABSCHUSS ) ) { printf( "Die Zahl muss zwischen %d und %d liegen:\n" ); scanf( "%d" , &iAbschussrate ); }
printf( "Bitte geben Sie die vorraussichtliche Zuwachsrate ein:\n" ); scanf( "%lg" , &dZuwachsrate ); while( !( iBestand_Start < MAXABSCHUSS ) && !( iBestand_Start > MINABSCHUSS ) ) { printf( "Die Zahl muss zwischen %lg und %lg liegen:\n" ); scanf( "%lg" , &dZuwachsrate ); }
iBestand_Akt = iBestand_Start;
while( bBedingung ) { iBestand_Akt -= iAbschussrate; iBestand_Akt = (int)( iBestand_Akt + ( iBestand_Akt * ( dZuwachsrate / 100.0 ) ) ); iJahr_Akt++;
printf( "Nach dem %dten Jahr sind noch %d Fuechse da!\n" , iJahr_Akt , iBestand_Akt ); if( ( iJahr_Akt >= MAXJAHRE ) || ( iBestand_Akt > ( iBestand_Start * 2 ) ) || ( iBestand_Akt < 0 ) ) { printf( "Der Fuchsbestand ist zu hoch, gleich 0, oder es sind %d Jahre vergangen!\n" , MAXJAHRE ); bBedingung = 0; } }
return 0; }
|
|