"sqrt" comando sconosciuto

di Anonimizzato9462 il
9 risposte
Ciao ragazzi, allora ho un problemino con la compilazione di un semplice programma scritto in C. Uso Visual Studio 2010 ultimate e nel momento in cui vado a compilare il programma mi esce il solito errore "error C3861: 'sqrt': identifier not found".

Nelle librerie ho inserito il math.h ma nonostante ciò il comando non va. La sintassi è la seguente:
double distanza,somma;
	somma=(x1*x2+y1*y2);
	distanza = sqrt (somma);
Grazie a tutti dell'aiuto!

9 Risposte

  • Magari non hai incluso la libreria math.h
    #include <math.h>
  • Io preferisco usare la potenza, poichè puoi calcolare la radice cubica e altre. Ecco un esempio:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main(void) {
        float m, n;
        m = 49.0f;
        n = pow(m, 1.0f / 2.0f); // Sostituire 2.0f con 3.0f per la radice cubica
        printf("%f", n);
        system("PAUSE >NUL");
        return 0;
    }
  • Innanzitutto grazie delle risposte, come già ho detto sopra la libreria math.h l'ho gia inclusa nel programma ma non va.
    Alee il tuo consiglio può anche andar bene ma a me serve una cosa più pratica e veloce e vorrei capire il perchè non va!
    All'epoca utilizzavo un compilatore in dos e il comando funzionava perfettametne, come mai il visual mi da errore?
  • Posta il prog
  • Prova a includere o solo <math> oppure <cmath>
  • davoleo ha scritto:


    prova a includere o solo <math> oppure <cmath>
    ok ci provo
  • Nono cmath ci va quando si fa un prog in c++. Ti ho detto posta il prog!
  • Header.h
    
    #include <math.h>
    #include <stdio.h>
    #include <stdlib.h>
    double distanza(double x1,double y1,double x2,double y2);
    main.c
    
    #include "header_.h"
    int main ()
    {
    	double x1,y1,x2,y2,d;
    	printf("Inserire le coordinate del primo punto (float): ");
    	scanf("%f %f", &x1,&y1);
    	printf("Inserire le coordinate del secondo punto (float): ");
    	scanf("%f %f", &x2,&y2);
    	d = distanza(x1,y1,x2,y2);
    	printf("la distanza dei punti è: %f\n",d);
    	return 0;
    }
    
    distanza.c
    
    double distanza(double x1,double y1,double x2,double y2)
    {
    	double distanza,somma;
    	somma=(x1*x2+y1*y2);
    	distanza = sqrt (somma);
    	return distanza;
    }
    
  • Non hai incluso gli header in distanza.c

    EDIT: Non so se è giusto come hai fatto di solito io uso solo un file .c o .cpp
Devi accedere o registrarti per scrivere nel forum
9 risposte