C++ Sottrazione Array e vari controlli

di il
5 risposte

C++ Sottrazione Array e vari controlli

Salve vorrei sapere come si strutturava un programma in c++ che fa questo: Dati due array di dim=4 con elementi inseriti da tastiera dall'utente far si che avvenga tramite una funzione la sottrazione tra questi due e stampare in output il secondo vettore alla quale sono strati sottratti i valori del primo.Attenzione però , nel caso in cui si dovessero andare a sottrarre due numeri negativi si deve smettere di fare la sottrazione e stampare il secondo vettore con la sottrazione degli elementi precedenti ai 2 negativi.

Esempio di input e output dei vettori : https://gyazo.com/821bf2a495df6cc6984021c52c35d63

5 Risposte

  • Re: C++ Sottrazione Array e vari controlli

    Non è chiara l'ultima parte ma tu cosa proponi?
  • Re: C++ Sottrazione Array e vari controlli

    Con un bel loop unrolling
  • Re: C++ Sottrazione Array e vari controlli

    Intanto vi ringrazio per l'attenzione , cerco di essere il più chiaro possibile , io ho due vettori inseriti da tastiera , voglio stampare il secondo vettore "variato" grazie alla sottrazione del primo , cosa intendo? se il primo vettore è 1234 ed il secondo 1234 io voglio ristampare il secondo vettore ma con gli elementi sottratti del primo vettore quindi se nel secondo vettore il primo elemento è 1 voglio fare 1 - il primo elemento del primo vettore , cosi facendo il primo elemento del secondo vettore che andrò a stampare sarà 0 , fin qui tutto semplice , quello che a me importa e che non so fare che la traccia chiede è: nel caso in cui si dovessero incontrare 2 numeri negativi (es: -2 per il primo vettore e -1 per il secondo vettore) allora si dovrà smettere di fare la sottrazione tra i due vettori e stampare il secondo vettore con la variazione degli elementi precedentemente sottratti , esempio: il primo vettore è 1 2 -3 4 , il secondo è 1 2 -2 4 , si andranno a sottrarre gli elementi quindi il secondo vettore che poi andrò a stampare dovrà essere 0 (perchè 1 - 1 = 0 ) 0 perchè 2-2 = 0 , -2 perchè io sto variando il secondo vettore quindi l'elemento deve far parte del secondo vettore ma perchè non è stato sottratto? Perchè io voglio far fermare la sottrazione quando ci sono due numeri negativi quindi stamperò -2 e 4 perchè anche l'ultimo non dovrà essere sottratto. Questo è quello che ho provato a fare io 2-3 giorni fa facendo modifiche ogni giorno senza grandi risultati quindi potrebbe anche non funzionare , grazie per il tempo , attendo risposte:

    #include <iostream>
    using namespace std;

    int main()
    {
    const int dim=4;
    int v[dim];
    int w[dim];
    int i;

    cout<< " inserisci gli elementi del primo vettore" <<endl;
    for ( i=0 ; i<dim; i++)
    {
    cin>>v;
    }
    cout<< "inserisci ora gli elementi del secondo vettore" << endl;

    for ( i=0 ; i<dim; i++)
    {
    cin>>w;
    }


    for ( i = dim-1 ; i>=0 ; i--) {
    if (v>0 || w>0){ do{ w=v-w ;
    for ( i=0 ; i<dim; i++)
    {
    cout << w << endl;
    }
    return 0;}while (v>0, w>0);} else {
    w[i]=v[i]-w[i] ; } }

    for ( i=0 ; i<dim; i++)
    {
    cout << w[i] << endl;
    }

    return 0;
    }
  • Re: C++ Sottrazione Array e vari controlli

    Dopo l'input, quei cicli non hanno molto senso.
    Parti da un semplice ciclo
    
    for(i=0; i<dim; i++)
    {
    
    }
    
    Al suo interno controlla se i valori correnti di v e w sono negativi. Se è così esegui un semplice break, altrimenti fai la sottrazione.

    Alla fine del for, con un altro for, mostri i risultati (il contenuto di w)
  • Re: C++ Sottrazione Array e vari controlli

    Vi ringrazio tantissimo , sono riuscito a farlo grazie a oregon,quanto era semplice? Ahahaha , grazie ancora.
    #include <iostream>
    using namespace std;

    int main()
    {
    const int dim=4;
    int v[dim];
    int w[dim];
    int i;

    cout<< " inserisci gli elementi del primo vettore" <<endl;

    for ( i=0 ; i<dim; i++)
    {
    cin>>v;
    }
    cout<< "inserisci ora gli elementi del secondo vettore" << endl;

    for ( i=0 ; i<dim; i++)
    {
    cin>>w;
    }

    for(i=0; i<dim; i++)
    {
    if (v<0&w<0)
    { break ; } else { w=v-w ;}
    }
    for ( i=0 ; i<dim; i++)
    {
    cout << w << endl;
    }

    return 0;
    }
Devi accedere o registrarti per scrivere nel forum
5 risposte