Brauche Hilfe bei Fehlerhaftem Programm
-
Hallo,
ich habe ein Programm geschrieben, was mir eigentlich die Anzahl an Bakterien einer Kultur nach i Tagen berechnen und ausgeben sollte. Das Bakterienwachstum un die spätere Reduktion wird durch eine Funktion dargestellt. Diese Funktion lässt sich durch folgende Rekursionsgleichung beschreiben
bac(0) = a
bac(i + 1) = bac(i) + ((p-i*q)/100) * bac(i)Das hier ist der Quelltext:
#include <stdio.h>
#include <stdlib.h>double bac( int i, double a, double p, double q ){
if ( i > 1 ) return bac( i - 1, a + ( p - q ) / 100 * a, p, q + 0.2 );
return a;
}int main(int argc, char *argv[])
{
int i;
double a;
printf( "Bitte Anzahl der Tage eingeben:\n" );
scanf( "%d", &i );
printf( "Bitte Anzahl der Bakterien eingeben:\n" );
scanf( "%f", &a );
printf( "Nach %d Tagen sind noch %5.5f Bakterien am Leben\n", i, bac( i, a, 5.0, 0.0 ) );system( "PAUSE" );
return 0;
}Leider gibt mir das Programm keine vernünftige Lösung aus.
Bitte helft mir.
Vielen dank schon mal im voraus.
-
Ich poste es nur mal schön formatiert, habe es noch nicht angeguckt. Ab deinem nächsten Beitrag formatierst du bitte selber, das geht mit den Buttons unter den Smileys:
#include <stdio.h> #include <stdlib.h> double bac( int i, double a, double p, double q ){ if ( i > 1 ) return bac( i - 1, a + ( p - q ) / 100 * a, p, q + 0.2 ); return a; } int main(int argc, char *argv[]) { int i; double a; printf( "Bitte Anzahl der Tage eingeben:\n" ); scanf( "%d", &i ); printf( "Bitte Anzahl der Bakterien eingeben:\n" ); scanf( "%f", &a ); printf( "Nach %d Tagen sind noch %5.5f Bakterien am Leben\n", i, bac( i, a, 5.0, 0.0 ) ); system( "PAUSE" ); return 0; }
Die Ausgabe meines Compilers gibt es als Bonus auch noch dazu:
test.c: In function ‘main’: test.c:16:3: warning: format ‘%f’ expects argument of type ‘float *’, but argument 2 has type ‘double *’ [-Wformat] scanf( "%f", &a ); ^
-
Nach angucken des Quelltextes und ein bisschen rumspielen: Ja, der oben von meinem Compiler automatisch erkannte Fehler war die Ursache. Merke also: Compilerwarnungen einschalten! Warnungen wie Fehler behandeln!
-
Jetzt klappt das Ganze und nächstes mal formatier ich das selber. Vielen dank du hast mir sehr geholfen.