Verwenden der von log(x) mit math.h



  • Mein kleines Programmchen funktioniert irgendwie nicht. Der Makro log(x) wird nicht erkannt, obwohl ich die Headerdatei math.h eingefügt habe. Kann mir wer weiterhelfen?

    #include <stdio.h>   	
    
    #include <stdlib.h>	
    
    #include <math.h>
    
    int main(void)		
    {
    	double x;	
    
    	printf("Gib eine Zahl ein: ");		
    	scanf("%d", &x);			
    
    	printf("Der natürliche Logarithmus von von %d ist %d\n", x, log(x));	
    	return EXIT_SUCCESS;			
    }
    


  • Hi,

    du programmierst unter Unix/Linux, oder?
    Einfach -lm als Compileroption mitgeben :xmas1:

    EDIT:
    %d bei scanf steht übrigens für decimal und ist geeignet, ganzzahlige Werte einzulesen. Du brauchst %lf

    MfG

    GPC



  • Erstens: log() ist kein Makro, sondern eine Funktion.

    Zweitens: Die Formatkennung %d steht für "Dezimal" (und ident zur Verarbeitung von int-Werten. Du benötigst %lf für scanf() bzw. %f für printf()

    Drittens: Eventuell solltest du auch dazusagen, was dein Compiler von dem Programm gehalten hat.



  • Vielen Dank! Es funktioniert wunderbar!


Log in to reply