Trovare array nella matrice

di il
35 risposte

Trovare array nella matrice

Help

/* scrivere un programma che legga in input una matrice di interi e un array di interi e valuti
se l'array è contenuto nella matrice (cioè se è un sotto-array di almeno una riga della matrice)*/

#include <iostream>
using namespace std;

bool trova_array(int * v, int dim, int ** M, int righe, int colonne)
{
    if(dim>righe*colonne)
    return false;

    int cont=0;
    for(int i=0; i<=righe-dim;i++)
    for(int j=0; j<=colonne-dim;j++)
    {
        for (int r=0; r<dim;r++)
        if (v[0+r]==M[i+r][j+r])
        cont++;
        else
        break;
        if (cont==dim)
        return true;
    }
    return false;
}

int main()
{
const int size=2;
int v[]={1,5};

int righe=2;
int colonne=2;
int dim=righe*colonne;
int M[dim]={1,5,7,8};


bool trovato = trova_array(v,size,M,righe,colonne);
if (trovato)
cout << "l'array è nella matrice" << endl;
else 
cout <<"l'array non è nella matrice" << endl;


    return 0;
}
cosa sbaglio? ho provato a seguire i suggerimenti dati dal mio prof ma sbaglio sicuramente qualcosa

35 Risposte

  • Re: Trovare array nella matrice

    Sicuro che il puntatore a matrice si dichiara con int* M?
  • Re: Trovare array nella matrice

    Si si dichiara con due puntatori ma facendolo mi porta un errore .. stavo provando a considerare la matrice come array unidimensionale, non so
  • Re: Trovare array nella matrice

    Non è meglio correggere l'errore e usare il doppio puntatore?
  • Re: Trovare array nella matrice

    Ho corretto, ma non va lo stesso.
    Ho un problema con la funziona e non capisco dove sbaglio
  • Re: Trovare array nella matrice

    Nel main() però M è un'array e non una matrice
  • Re: Trovare array nella matrice

    oregon ha scritto:


    Non è meglio correggere l'errore e usare il doppio puntatore?
    Scusa ma come fai a passare una matrice (nel senso di array bidimensionale statico) ad una funzione attraverso un argomento di tipo puntatore doppio?
  • Re: Trovare array nella matrice

    Ho riscritto il programma dichiarando la matrice dinamicamente ma non funziona ugualmente.. ho problemi con la funzione, il resto non centra..
  • Re: Trovare array nella matrice

    @cavamr

    Non continuare a modificare i post che fai casino e poi gli altri si confondono. È già il secondo thread

    Fai un attimo una ricerca sui puntatori doppi nel forum stesso oppure su un libro di testo, prima di continuare
  • Re: Trovare array nella matrice

    Ripeto: non è un problema di dichiarazione della matrice ma un problema della funzione .
  • Re: Trovare array nella matrice

    Cava sappiamo tutti risolvere questo esercizio. Però se vuoi che qualcuno ti segua nei ragionamenti non puoi modificare i post passati, che come vedi fai un gran macello. Per il resto studia un attimo come si chiama una matrice da una funzione, ci sono diversi modi. È meglio che andare per tentativi
  • Re: Trovare array nella matrice

    Per quello che ho studiato io (e per quello che serve per passare l'esame), una matrice ad una funzione si passa con un doppio puntatore ed è quello che ho fatto. All'inizio, considerando la matrice come un array unidimensionale, l'ho passata alla funzione con un solo puntatore ma con scarsi risultati. In questo momento la funzione mi sta dando problemi.
  • Re: Trovare array nella matrice

    cavamr ha scritto:


    Per quello che ho studiato io (e per quello che serve per passare l'esame), una matrice ad una funzione si passa con un doppio puntatore ...
    Se con matrice intendi un array (statico) bidimensionale, ti sbagli!
  • Re: Trovare array nella matrice

    Non so allora.. sulla dispensa che ci ha fornito il prof una matrice all'interno della funzione viene dichiarata con doppio puntatore. Durante il corso abbiamo studiato anche la gestione delle matrici tramite array unidimensionali.
    Sicuramente mi sarò spiegato anche male ma il mio corso di laurea non è di informatica quindi non ne capisco molto
  • Re: Trovare array nella matrice

    Per questo non mi sto applicando nemmeno più di tanto e vorrei sapere cosa sbaglio nella funzione, perchè vorrei dare questo esame e poi chiudere con l'informatica ahahah
Devi accedere o registrarti per scrivere nel forum
35 risposte