salve a tutti.. devo creare una funzione "restringi()" che prenda come parametri:
- un array R di struct P (dove definisco struct P con due campi, c1=int e c2=array di char)
- un array A di tipo int
- un array S di tipo struct P, contenente le struct di R, dove sono contenuti elementi in comune fra R[].c1 A[]
e poi stampi S ed il numero di elementi di S..
esempio stupido
R={19, "aaa", 20, "bbb", 21, "ccc"}
A={19, 21}
stampa S= 19 aaa
21 ccc
la funzione devo poi inserirla in un "main di prova" dove i dati vengono definiti dall'utente..
come devo fare? NON RIESCO A PASSARE I PARAMETRI ALLA FUNZIONE..
ho azzardato questo.. ma non funziona.. qualcuno puo dirmi cosa sbaglio? (per favore no puntatori)
codice:
#include <iostream>
#include <cstring>
using namespace std;
struct P //dichiaro il tipo P
{
int c1;
char c2[80];
};
struct P R[4];
struct P S[4];
int m, n, x;// dim R, dim A, dim elementi S (Condivisi)
int r, a, s;// indici di R, A ed S
int A[4];
int restringi(struct P, P R[], int A[], int n, int m, P S[])
{
for(r=0; r<=m; r++)
{
for(a=0; a<=n; a++)
{
if (A[a]==R[r].c1)
{
S[s].c1=A[a];
stricmp(S[s].c2, R[r].c2);
x++;
}
}
}
return x;
}
int main()
{
int m, n, x;// dim R, dim A, dim elementi S (Condivisi)
int r, a, s;
struct P //dichiaro il tipo P
{
int c1;
char c2[80];
};
struct P R1[m];
struct P S1[x];
int A1[n];
cout<<"programma di prova.."<<endl;
cout<<"inserisci il numero di elementi R:"<<endl;
cin>>m;
r=0;
for (r=0; r<m; r++)
{
cout<<"Inserisci il "<<r+1<<" elemento numerico "<<endl;
cin>>R1[r].c1;
}
r=0;
for (r=0; r<m; r++)
{
cout<<"Inserisci il "<<r+1<<" elemento alfanumerico "<<endl;
cin>>R1[r].c2;
}
cout<<"inserisci il numero di elementi A:"<<endl;
cin>>n;
a=0;
for (a=0; a<n; a++)
{
cout<<"Inserisci il "<<r+1<<" elemento di A "<<endl;
cin>>A1[a];
}
x = restringi (P R1[ ] , int A1 [ ], int n, int m, P S1 [ ]);
cout<<"il numero di elementi di S è: " <<x;
cout<<"gli elementi di S sono: "; // nn posso continuare la funzione non va!!
return 0;
}