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.