Matrice da file

di Anonimizzato25224 il
6 risposte
Leggere una matrice da file e poi fare la somma degli elementi presenti in ogni riga e ordinare tale somma in maniera crescente.
Usare allocazione dinamica


Esempio 2 6 7 Somma 15
3 8 0 11.
4 7 1 12
Ordine crescente 11 12 15

6 Risposte

  • Fatto!
  • Si ma ho fatto un errore, non bisognava copiare in un vettore, ma restituire la matrice ordinata per valori crescenti della somma
  • Scusa Gioia, ma ancora non hai capito che non si utilizza cosi' il forum. Avevi già scritto in questo modo ... non hai capito le risposte?

    Proponi quello che hai scritto tu e dai qualche indicazione su cosa hai provato e cosa non ti riesce.

    Altrimenti come si fa a discutere senza codice né problema? Si immagina? E comunque, NON si scrive il codice del compito AL POSTO TUO ma si danno suggerimenti. Compreso?
  • [

    return EXIT_FAILURE;
    for(int i = 0; i < r; i++) {
    for(int j = 0; j < c; j++) {
    f >> m[j];
    somma = somma + m[j];
    }
    vettore = somma;
    somma = 0;
    }
    cout <<"\n";
    cout <<"Matrice in Input: \n";
    stampaMat (m, r, c);
    // stampaVett (vettore,r);
    int temp;
    for(int i=0; i<r-1; i++)
    {
    int min = i;

    for(int j=i+1; j<r; j++)
    if(vettore[j] <vettore[min]) //cambiare questa condizione per invertire l'ordine
    min = j;
    temp=vettore[min];
    vettore[min]=vettore;
    vettore=temp;
    }
    //stampa
    cout <<"Vettore Ordinato: \n";
    for (int n=0; n<r; n++)
    cout << vettore[n] << " ";
    cout << "\n";
    f.close();
    }
    return EXIT_SUCCESS;

    }

    void stampaMat(int const* const* m, int r, int c) {
    for(int i = 0; i < r; i++) {
    for(int j = 0; j < c; j++) {
    cout << m[j] << " ";
    }

    cout << endl;
    }
    }

    int** creaMat(int r, int c) {
    int i;
    int** m;
    m =


    [/code]
  • Io ho scritto questo ma così lo copia in un vettore, invece io devo restituire a video una matrice ordinata per valori crescenti della somma
  • Consiglio ... quando ordini il vettore delle somme, utilizza anche un altro vettore di uguali dimensioni in cui all'inizio hai inserito il valore dell'indice.
    Ad esempio, se le righe r sono 5, crea un altro vettore che contenga i valori 0, 1, 2, 3, 4.
    Quando fai l'ordinamento e scambi i valori del primo vettore, scambia anche quelli del secondo vettore. Alla fine dell'ordinamento avrai il secondo vettore che conterrà, ad esempio, 3 2 4 0 1
    A questo punto, leggi questo vettore e scrivi le righe della matrice corrispondenti, ovvero, sempre nell'esempio,

    la riga 3
    la riga 2
    la riga 3
    la riga 0
    la riga 1
Devi accedere o registrarti per scrivere nel forum
6 risposte