Problemi con puntatori

di il
2 risposte

Problemi con puntatori

Sera a tutti...ho iniziato a programmare da poco e per cercare di capire meglio puntatori e vettori ho cercato di creare un programmino che risolvesse equazioni di secondo grado solo che secondo me ho combinato casini con i puntatori o almeno non riesco a richiamare la variabile delta dal sottoprogramma
sapete dirmi cosa ho sbagliato??


#include <iostream>
#include <math.h>

using namespace std;



void carica_vettore (int card_v, int riemp_v, int v[]) 
  // ho inserito il vettore anke se nn vi era grande bisogno x imparare ad usarlo
{
     
     
           for(int i=0;i<riemp_v;i++)
           {
                   cout<<"\ninserisci valore coefficiente "<<i+1<<":";
                   cin>> v[i];
           }
     
     
}

float ricerca_delta(int a,int b, int c,float *d)
{
    *d = (b*b)-(4*a*c);
    cout<<*d<<endl<<endl;
}

int main()
{
    int c[3]; // creo un vettore di cardinalità 3 in quanto ho bisogno di sole 3 allocazioni a memoria
    float *delta,x1,x2;
    cout<<"inserisci coefficienti a, b e c \n";
    carica_vettore (3,3,c);
    ricerca_delta(c[0],c[1],c[2], delta);
    
    
    if(delta=0)
        {
                   cout<<"\n\nvi sono 2 soluzioni coincidenti\n";
                   x1=((-c[1]))/2*c[0];
                   cout<<"x1 = x2 --->"<< x1<<endl;
                   
        }
    
    else 
    {
        if(delta>0)
        {
               cout<<"\n\nvi sono 2 soluzioni reali distinte\n";
               x1=(-c[1]+sqrt(*delta))/2*c[0];
               cout<<"x1 ---> "<<x1<<endl;
               x2=((-c[1])-sqrt(*delta))/2*c[0];
               cout<<"x2 ---> "<<x2<<endl;
        }
        else(delta<0)
        {
                     cout<<"non vi sono soluzioni reali\n\n";
                     
        } 
    }
    
    
    
    system ("pause");
}
grazie a tutti anticipatamente

2 Risposte

  • Re: Problemi con puntatori

    Cambia:
    
    float *delta
    
    in:
    
    float delta = 0;
    
    chiama la funzione così:
    
    ricerca_delta(c[0],c[1],c[2], &delta);
    
    nel main usa sempre delta e non *delta e vedrai che non avrai problemi.
  • Re: Problemi con puntatori

    Grazie mille ora parte !! sei stato genitilissimo!
Devi accedere o registrarti per scrivere nel forum
2 risposte