Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [C] distanza origini con puntatori

    codice:
    #include "stdafx.h"
    #include "math.h" 
    void distanza (float x, float y, float *dist);
    
    
    
    
    int main ()
    
    {
    float x = 0.0;
    float y = 0.0;
    float punto_1 = 0.0;
    float punto_2 = 0.0;
    float dist = 0.0;
    
    
    
    	printf("inserire il valore di X primo   ");
    	scanf("%f",&x);
    	getchar();
    	
    	printf("inserire il valore di Y primo   ");
    	scanf("%f",&y);
    	getchar();
    
    	punto_1 = distanza(x, y, &dist);
    	
    	
    	printf("inserire il valore di X secondo    ");
    	scanf("%f",&x);
    	getchar();
    
    	printf("inserire il valore di Y secondo    ");
    	scanf("%f",&y);
    	getchar();
    
    	punto_2 = distanza(x, y, &dist);
    	
    
    	printf(" \n La distanza dei due punti e' %f   -   %f   \n\n",punto_1,punto_2);   
    
    	return 0;
    }
    
    
    void distanza(float x, float y, float *dist)
    
    {
    	*dist =  pow(x,2) + pow(y,2);
    
    }


    ciao

    ho 2 errori nel compilatore (credo riguardino i puntatori) mi da errore c2640 inpossibile convertire da void a float help

    la versione senza puntatori funziona benissimo


    P.S.(e inpressionante quante reti WiFi sono senza protezione a Roma ) VVoVe:
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [C] distanza origini con puntatori

    Cosa speri di avere come ritorno da una funzione void?

    Originariamente inviato da Alessio86
    codice:
    	punto_2 = distanza(x, y, &dist);
    
    void distanza(float x, float y, float *dist)
    
    {
    	*dist =  pow(x,2) + pow(y,2);
    
    }

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Innanzitutto includi <stdio.h> altrimenti il compilatore non conosce il prototipo di printf/scanf/getchar.
    Poi la tua funzione distanza() ritorna un void. Nel main invece usi il valore di ritorno. La distanza viene già ritornata tramite il puntatore passato, non come valore di ritorno.
    Inoltre hai usato pow(), che usata in "C" opera e ritorna double. Dovresti usare powf.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    codice:
    #include "stdafx.h"
    #include "math.h" 
    #include "stdio.h"
    void distanza (float x, float y, float *dist);
    
    
    
    
    int main ()
    
    {
    float x = 0.0;
    float y = 0.0;
    float punto_1 = 0.0;
    float punto_2 = 0.0;
    float dist = 0.0;
    
    
    
    	printf("inserire il valore di X primo   ");
    	scanf("%f",&x);
    	getchar();
    	
    	printf("inserire il valore di Y primo   ");
    	scanf("%f",&y);
    	getchar();
    
    	punto_1 = &dist;
    	
    	
    	printf("inserire il valore di X secondo    ");
    	scanf("%f",&x);
    	getchar();
    
    	printf("inserire il valore di Y secondo    ");
    	scanf("%f",&y);
    	getchar();
    
    	punto_2 = &dist;
    	
    
    	printf(" \n La distanza dei due punti e' %f   -   %f   \n\n",punto_1,punto_2);   
    
    	return 0;
    }
    
    
    void distanza(float x, float y, float *dist)
    
    {
    	*dist =  powf(x,2) + powf(y,2);
    
    }
    ... nn e che ci abbia capito granche , la Function e void , visto che dist e un puntatore, quindi nn c'e bisogno di richiamarla nel main ma dico che punto_1 = al valore di dist ..... ma nn funziona
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Questa

    punto_1 = &dist;

    e questa

    punto_2 = &dist;

    sono sbagliate ... ma cosa dovrebbero significare per te?

    E nel main, quando chiami la funzione che calcola la distanza??

  6. #6
    io precedentemente chiamavo la funzione punto_1 = distanza(x,y,&dist);
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  7. #7
    Originariamente inviato da oregon
    Questa

    punto_1 = &dist;

    e questa

    punto_2 = &dist;

    sono sbagliate ... ma cosa dovrebbero significare per te?

    ...... in efetti &dist e nella funzione che non essendo chiamata, &dist non ha nessun valore.......

    quindi ammesso e nn concesso che la chiamata va bene come ho scritto precedentemente e che essendo dist un puntatore, la funzione e void ........ perche nn funziona .......
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Alessio86
    perche nn funziona .......
    Perché la funzione ritorna void (cioè nulla):

    void distanza(float x, float y, float *dist)

    ma tu nel main fai:

    punto_1 = distanza(x, y, &dist);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Che poi ... non ha neanche senso che la funzione

    distanza

    (che dovrebbe calcolare una distanza ...)

    accetti le coordinate di un solo punto ... E la formula che usi ? Mi sa che stai sbagliando dalle "basi" ...

  10. #10
    Originariamente inviato da oregon
    Che poi ... non ha neanche senso che la funzione

    distanza

    (che dovrebbe calcolare una distanza ...)

    accetti le coordinate di un solo punto ... E la formula che usi ? Mi sa che stai sbagliando dalle "basi" ...




    codice:
    Scrivere una functiondistanza_orig che calcoli la distanza dall’origine di un punto del piano, date le sue due coordinate.
    
    Scrivere un main che legga in input (con scanf) le due coordinate e calcoli la distanza dall’origine richiamando la functiondistanza_orig
    sqrt(x^2 + y^2)                               P-like


    questa e la formula della funzione , quello che volevo fare io era usarla con i puntatori
    Potrei morire per una {Ferrari 599 GTB Fiorano F1}

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.