Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    procedura ricorsiva su matrice

    Salve, ho svolto questa procedura, la compila ma non funziona...
    sapreste dirmi l'errore?

    grazie

    /*
    Assegnata una matrice quadrata NxN, scrivere una procedura ricorsiva che
    calcoli la somma delle righe pari e delle righe dispari.
    */

    #include<iostream>
    #include<cstdlib>
    #include <ctime>

    using namespace std;
    void PariDispari(int [][3], int, int, int, int &, int&);
    void StampaMat(char, const int [][3], int);

    int main()
    {
    int A[][3]={1,0,0,0,1,0,0,0,1};
    int i=0, j=0, n=3, sommaP=0, sommaD=0;

    PariDispari(A, i, j, n, sommaP, sommaD);
    cout<<sommaP<<endl;
    cout<<sommaD<<endl;

    StampaMat('A',A,n);

    system("pause");
    }


    void PariDispari(int A[][3], int i, int j, int n, int &sommaP, int &sommaD){
    if(i<=n){
    if(j>n)
    PariDispari(A, i+1, 0, n, sommaP, sommaD);
    else if((i%2)==0)
    sommaP+=A[i][j];
    else
    sommaD+=A[i][j];
    PariDispari(A, i, j+1, n, sommaP, sommaD);
    }

    }


    void StampaMat(char nomemat,const int A[][3], int n) {
    int i,j;
    for (i=0;i<n;i++) {
    for (j=0; j<n; j++)
    cout<<nomemat<<"["<<i<<"]["<<j<<"]="<<A[i][j]<<" ";
    cout<<endl;
    }
    }

  2. #2
    usa il tag
    codice:
     ...
    per conservare l'indentazione nel tuo codice.
    ciao
    sergio

  3. #3
    codice:
    void pariDispari(int a[][colmax], int i, int j, int N, int &sommaP, int &sommaD)
    {
    if (i<=N) 
     {  
         if (j>N)
        return pariDispari(a,i+1,0,N,sommaP,sommaD);
        else   
            if ((i%2)==0)  
            sommaP+=a[i][j];
            else
                sommaD+=a[i][j];  
         return pariDispari(a,i,j+1,N,sommaP,sommaD);  }     
         }
    funziona, grazie lo stesso
    scusa, siccome stò facendo pratica, non è che sai indicarmi qualche buon sito
    dove posso trovare esempi svolti, traccè da svolgere, etc...

    Grazie
    Antonio

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Ricorda che il linguaggio va obbligatoriamente indicato nel titolo.


    L'ho aggiunto io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5

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 © 2024 vBulletin Solutions, Inc. All rights reserved.