Occorrenza multipli in lista

di il
1 risposte

Occorrenza multipli in lista

Ciao sto facendo un esercizio per il conteggio delle occorrenze di multipli di un dato valore k, all'interno di una lista di array.
vi posto il main dove non accede alla funzione "freq".
Le funzioni della struttura sono in un file esterno .cpp

#include <cstdlib>
#include <iostream>
#include "ListaSeq.h"

using namespace std;

void inserisciLista(ListaSeq &l){
   int i = 0;
   char risp = 's';
   tipoelem a;
   posizione p;
   while ((risp == 's') || (risp == 's')){
      i++;
      cout << "Inserisci elemento " << i << ": ";
      cin >> a;
      cout << "Posizione in cui inserire " << a << ": ";
      cin >> p;
      l.insLista(a, l.pos(p));
      do{
         cout << "Altri elementi? (S/N) ";
         cin >> risp;
      } while (!((risp == 'S') || (risp == 's') || (risp == 'N') || (risp == 'n')));
   }
   cout << "Hai inserito " << i << " elementi" << endl;
}        

void stampaLista(ListaSeq l){
   if (!l.listaVuota()){
      posizione p = l.primoLista();
      tipoelem a;
      while (!l.fineLista(p)){
         l.leggiLista(a, p);
         cout << a << " ";
         p = l.succLista(p);
      }
      cout << endl;
   } else cout << "Lista vuota" << endl;
}

//restituisce il numero di occorrenze dei multipli di k nella lista L;

int freq(ListaSeq l, int k){
	tipoelem a;

	int trovato=0;
	int p=1;
	
	while(!l.fineLista(p)){
		if(l.leggiLista(a, p)%k==0)
			trovato++;
	}p++;

	if(trovato==0)
		cout << "non sono presenti multipli di k = " << k << endl;
	else
		cout << "ci sono" << trovato << "multipli di k = " << k << endl;	
}

int main(int argc, char *argv[]){
   ListaSeq l, m, n;
   tipoelem a;
   posizione p, pivot;
   int i, trovato;
   
   //inserimento nella lista
   cout << "Inserimento non ordinato della lista L:" << endl << endl;
   inserisciLista(l);
   cout << endl << "L: ";
   stampaLista(l);
   
	//funzione frequenza multipli
   cout << endl << "frequenza multiplo di k: ";
   freq(l, 3);
   stampaLista(l);
 
   l.creaLista();
   m.creaLista();
   n.creaLista();
   

   system("PAUSE");
   return 0;
}
grazie per l'aiuto.

1 Risposte

  • Re: Occorrenza multipli in lista

    Alla funzione freq ci accede ma non stampa il valore che ritorna quello è un altro discorso.
    dal main invece di fare solo
    freq (l, 3);
    devi fare
    cout<<freq(l, 3)M
    perchè cosi visualizza il valore restituito dalla funzione
Devi accedere o registrarti per scrivere nel forum
1 risposte